2

据我了解,提取运算符>> 由空格分隔。提取运算符是否从流中删除分隔符?例如,假设我有文件

6
Foo
Bar

和代码

ifstream fin(filename);
int x;
fin >> x;

文件流是否仍然包含 6 之后的换行符(可能会弄乱后续的 getline 语句)?还是在提取过程中将其删除?

4

2 回答 2

2

未消耗的流部分保持不变。因此,后续调用getline将返回一个空行。

如果您不确定确切的文件内容,请尝试cat -A filename.

于 2012-04-28T13:34:26.533 回答
0

试试看。你可以做

ifstream fin(filename);
string x;
fin >> x;
cout<<x<<"foo";

你会注意到它;)

于 2012-04-28T13:27:38.577 回答