我在使用 fstream 的 getline 指令时遇到问题。这是我的代码片段:
boolean_1=true;
while(true)
{
if(boolean_1)
{
//some stuff
}
else
{
save_file.open("save.txt", fstream::in);
//some stuff
save_file.close();
}
mission_file.open(filename, fstream::in);
mission_file.getline(buffer_line, 256);
//some other stuff
boolean_1=false;
save_file.open("save.txt", fstream::out);
//write something
save_file.close();
}
此代码应在第一次运行时打开任务文件,并在下一次迭代时打开保存文件。保存文件在每个循环结束时创建。至少它应该像这样工作。因为,第一次一切正常,但在下一次迭代中,“mission_file.getline(buffer_line, 256);” 返回一个空行,使程序崩溃。此外,如果 boolean_1 以 false 开始,则循环工作正常,直到下一个循环。
我已经检查了是否存在所需的“.txt”,mission_file 和 save_file 都返回 is_open() true。