据我了解提取算子>>由空格分隔。提取运算符是否从流中删除分隔符?例如,说我有文件
6
Foo
Bar
和代码
ifstream fin(filename);
int x;
fin >> x;
文件流是否仍然包含6之后的换行符(可能搞乱后续的getline语句)?或者在提取过程中将其删除了?
答案 0 :(得分:2)
未消耗的流部分保持不变。因此,对getline
的后续调用将返回一个空行。
如果您不确定确切的文件内容,请尝试cat -A filename
。
答案 1 :(得分:0)
试一试。你可以做到
ifstream fin(filename);
string x;
fin >> x;
cout<<x<<"foo";
你会注意到它;)