3

使用時:

string s;
cin >> s;

文字列に含めることができる文字と、文字列への読み取りを停止する文字。

4

2 に答える 2

10

std::ctype_base::spacestd::istreamソースからのそれ以上の文字の読み取りを停止する区切り文字です。

std::ctype_base::space空白と改行を参照します。つまり、sを使用して読み取る場合、空白と改行以外の任意の文字を含めることができますcin>>s

空白を含む完全な行も読みたい場合は、getline()改行を区切り文字として使用する関数を使用できます。独自の区切り文字を提供する場合に使用できるオーバーロードされた関数もあります。詳細については、ドキュメントを参照してください


に設定できるカスタマイズされたロケールstd::istreamを使用することもできます。カスタマイズされたロケールでは、 によって区切り文字として扱われる一連の文字を定義できますstd::istream。ここでそのような例の1つを見ることができます(私の解決策を参照してください):

std::string を vector<string> に分割する正しい方法

于 2011-05-23T08:32:58.813 に答える
3

区切り文字は、 truechstd::isspace( ch, std::sin.getlocale() )返す任意の文字です。言い換えれば、埋め込まれたロケールが「空白」と見なすものは何でも。(私はそれをやや乱用していると思いますが、プログラマーが特別なロケールを作成することを知っています。たとえば,、空白 を考慮>>し、コンマ区切りのリストを読み取るために使用します。)

于 2011-05-23T09:01:16.490 に答える