抽出演算子>>が空白で区切られていることを理解しています。抽出演算子は区切り文字をストリームから削除しますか?例えば、(潜在的に、後続のgetline文をめちゃくちゃに)私は、ファイル抽出演算子は区切り文字を削除しますか?
6
Foo
Bar
とFileStreamはまだ6に続く改行文字が含まれていないコード
ifstream fin(filename);
int x;
fin >> x;
を持っていると言いますか?または、これは抽出プロセスで削除されましたか?
抽出演算子>>が空白で区切られていることを理解しています。抽出演算子は区切り文字をストリームから削除しますか?例えば、(潜在的に、後続のgetline文をめちゃくちゃに)私は、ファイル抽出演算子は区切り文字を削除しますか?
6
Foo
Bar
とFileStreamはまだ6に続く改行文字が含まれていないコード
ifstream fin(filename);
int x;
fin >> x;
を持っていると言いますか?または、これは抽出プロセスで削除されましたか?
消費されなかったストリームの一部は変わりません。したがって、後でgetline
を呼び出すと、空の行が返されます。
正確なファイルの内容が不明な場合は、cat -A filename
をお試しください。
試してみてください。あなたは
ifstream fin(filename);
string x;
fin >> x;
cout<<x<<"foo";
は、あなたがそれに気づくでしょう行うことができます;)
試しましたか? – Mat
はい、改行はまだありましたが、それが抽出演算子の仕組みや改行の前にファイル内に別の見えない空白文字があったかどうかを判断するのは難しいです。キャリッジリターン –