2012-04-28 8 views
2

抽出演算子>>が空白で区切られていることを理解しています。抽出演算子は区切り文字をストリームから削除しますか?例えば、(潜在的に、後続のgetline文をめちゃくちゃに)私は、ファイル抽出演算子は区切り文字を削除しますか?

6 
Foo 
Bar 

とFileStreamはまだ6に続く改行文字が含まれていないコード

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

を持っていると言いますか?または、これは抽出プロセスで削除されましたか?

+2

試しましたか? – Mat

+0

はい、改行はまだありましたが、それが抽出演算子の仕組みや改行の前にファイル内に別の見えない空白文字があったかどうかを判断するのは難しいです。キャリッジリターン –

答えて

2

消費されなかったストリームの一部は変わりません。したがって、後でgetlineを呼び出すと、空の行が返されます。

正確なファイルの内容が不明な場合は、cat -A filenameをお試しください。

0

試してみてください。あなたは

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

は、あなたがそれに気づくでしょう行うことができます;)

関連する問題