我正在编写一个程序,第一次运行它会创建并写入一个文件,然后在程序中它应该从该文本文件中读取,但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 ++程序,它的成绩很高。
答案 0 :(得分:0)
在您的infile上命中文件结束后,您必须调用infile.clear()来清除EOF位。