次のC++プログラムについて考えてみます。このプログラムは、ファイルを受け取り、各行を出力します。これは、私が見たものに基づいて、後でファイルに追加する、より大きなプログラムのスライスです。
#include <fstream>
using std::fstream;
#include <iostream>
#include <string>
using std::string;
int main()
{
fstream file("file.txt", fstream::in | fstream::out | fstream::app);
string line;
while (std::getline(file, line))
std::cerr << line << std::endl;
return 0;
}
次に、このバージョンのfile.txt
(最初の行に1つの単語が続き、その後に改行が続く)を適用します。
Rain
私のマシン(Snow Leopard)では、これは何も出力しません。よく調べてみると、getlineへの最初の呼び出しは失敗します。不思議なことに、2行目を追加しても失敗します。それでも何も出力されません。
誰かがこの謎を解くことができますか?