提取运算符删除分隔符?

时间:2012-04-28 13:19:18

标签: c++ input extraction

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

6
Foo
Bar

和代码

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

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

试一试。你可以做到

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

你会注意到它;)