2012-04-28 68 views
2

據我瞭解,提取操作符>>被空格分隔。提取操作符是否從流中移除分隔符?例如,說我有文件做提取操作符刪除分隔符?

6 
Foo 
Bar 

和代碼

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

沒有文件流仍含有隨後的6換行符(可能搞亂了後續函數getline語句)?或者是在提取過程中被刪除?

+2

你試過了嗎? – Mat 2012-04-28 13:26:13

+0

是的,換行符仍然存在,但很難判斷是因爲提取操作符的工作方式,還是在換行符之前文件中存在另一個不可見的空白字符,例如,回車 – 2012-04-28 13:28:26

回答

2

未使用的流的部分保持不變。所以隨後調用getline將返回一個空行。

如果您不確定具體的文件內容,請嘗試cat -A filename

0

試一試。你可以做

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

,你會發現它;)