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 回答