如果没有数据,则创建一个包含数据的文本文件,然后读取它以检索数据
Create a text file with data if there isn't, and read it afterwards to retrieve data
我需要一个项目来保存用户玩游戏的进度。如果没有,我的代码会创建文件并给出启动值,而另一个读取文件之前或新创建时读取文件的代码。这两个部分独自工作,但是当一起出现错误时。
#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
在写作后重置位置。
相关文章:
- 如何存储用户输入的所有数据,然后在他们想要查看所有数据时显示它们
- 从文本文件中读取并输入到数组结构中,然后显示读取的数据C++
- 是否可以将多个结构作为一个数据包存储在一个函数中,然后传递给其他函数并在那里提取?
- 在结构向量中搜索一个数据成员,然后打印匹配的所有数据成员
- 如何将两个 jlong 数据类型转换为 jstring,然后将两个字符串连接在一起以便从 JNI 将字符串返回给 jav
- 比较 JSON::Value 变量中的数据,然后更新到文件
- 将40个字节长的数据框从十六进制转换为二进制,然后转换为十进制
- 如何在每次循环迭代期间生成向量,存储数据,然后删除该向量?
- 如何以块的形式读取数据,然后从中获取某些数据
- C++ 读取.csv文件,将数据放入变量中,然后放入对象中
- 如何生成位图头数据,然后使用 C++ 写入文件
- 使用队列和列表 STL 进行C++分配。在将数据填充到列表或队列中然后打印该数据时遇到问题
- C++从 csv 文件中读取,然后将数据分配给类成员
- 我如何调用我的3个数据成员中每个人的设置方法,然后显示由我的设置方法设置的值
- 在TXT文件中读取一些数据,然后将其传递给字符串数组
- 如果没有数据,则创建一个包含数据的文本文件,然后读取它以检索数据
- 我如何从FSTREAM中获取数据,然后再次获取数据
- 如何将足够的数据从文本文件分配到char*中,然后将其复制到内存C 中
- 在C 中读取二进制数据,然后写入MySQL
- 如何初始化静态 arduino (C) 数据结构,然后使用它们