0

私はプログラムを書いていますが、最初に実行するとファイルが作成されて書き込まれ、後でプログラムでそのテキストファイルから読み取るはずですが、good() は false を返します。プログラムをもう一度実行すると、完全に読み取りと書き込みが行われます。

while(!done) {    //loop thats not supposed to end 
//code that has nothing to do with file
infile.seekg(0,ios::beg);   
while(infile.good() && !infile.eof()) {
//reads file line by line
}
ofstream file(fileName, ios::app);
file << s+"\n";
file << m+"\n";
file.close();

それは常に問題なく書き込みますが、プログラムを初めて実行し、テキストファイルが後で新しい場合、プログラムはこれに移行しません

プログラムを閉じて再度実行すると、しばらく時間がかかり、完全に機能しますが、助けていただければ幸いです。入れてみました

if(!infile.good()){ 
ofstream file(fileName) 
}

ファイルの先頭にありますが、それは何もしませんが、プログラムの早い段階でファイルを作成し、それでも同じ問題があります。これは私の最初の C++ プログラムであり、大きなグレードです。

4

1 に答える 1

0

infile でファイルの終わりにヒットした後、 infile.clear() を呼び出して EOF ビットをクリアする必要があります。

于 2013-02-12T17:46:22.857 に答える