如果没有数据,则创建一个包含数据的文本文件,然后读取它以检索数据

Create a text file with data if there isn't, and read it afterwards to retrieve data

本文关键字:数据 然后 文件 文本 读取 检索 一个 创建 如果没有 包含      更新时间:2023-10-16

我需要一个项目来保存用户玩游戏的进度。如果没有,我的代码会创建文件并给出启动值,而另一个读取文件之前或新创建时读取文件的代码。这两个部分独自工作,但是当一起出现错误时。

#include <fstream>
#include <string.h>
int i = 0;
string line;
ifstream myfile ("progress.txt");
if(!myfile)
{
    ofstream myfile;
    myfile.open ("progress.txt"); //create new file
    myfile << "0n";
    myfile << "1n";
    myfile << "1n";
}
ifstream myfile;
while(getline(myfile, line))
{
    WL.levels[i].lockedLevel = line[0];
    i++;
}
myfile.close();

有什么建议以使其起作用?

是的,实际上,您正在声明两次myfile,这给出了汇编错误。快速修复将是创建其他名称或更好地关闭并重新打开的流:

myfile.close();
myfile.open("progress.txt");

您必须放置而不是第二个ifstream myfile;行。

但是,您实际上不需要关闭流并重新打开流,一个更好的解决方案就是将下一个字符的位置重置以使用Seekg方法读取为零:

myfile.seekg(0);

更新:我在开始时没有看到您还创建了一个ofstream对象,其中If语句中的名称具有相同的名称。如果您要读取和编写文件,则应考虑将MyFile定义为fstream,仅在开始时仅一次,然后使用seekg在写作后重置位置。

相关文章: