2
据我了解,提取操作符>>被空格分隔。提取操作符是否从流中移除分隔符?例如,说我有文件做提取操作符删除分隔符?
6
Foo
Bar
和代码
ifstream fin(filename);
int x;
fin >> x;
没有文件流仍含有随后的6换行符(可能搞乱了后续函数getline语句)?或者是在提取过程中被删除?
据我了解,提取操作符>>被空格分隔。提取操作符是否从流中移除分隔符?例如,说我有文件做提取操作符删除分隔符?
6
Foo
Bar
和代码
ifstream fin(filename);
int x;
fin >> x;
没有文件流仍含有随后的6换行符(可能搞乱了后续函数getline语句)?或者是在提取过程中被删除?
未使用的流的部分保持不变。所以随后调用getline
将返回一个空行。
如果您不确定具体的文件内容,请尝试cat -A filename
。
试一试。你可以做
ifstream fin(filename);
string x;
fin >> x;
cout<<x<<"foo";
,你会发现它;)
你试过了吗? – Mat 2012-04-28 13:26:13
是的,换行符仍然存在,但很难判断是因为提取操作符的工作方式,还是在换行符之前文件中存在另一个不可见的空白字符,例如,回车 – 2012-04-28 13:28:26