Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如果没有';t、 然后读取它以检索数据_C++ - Fatal编程技术网

C++ 如果没有';t、 然后读取它以检索数据

C++ 如果没有';t、 然后读取它以检索数据,c++,C++,我需要一个项目来保存用户玩游戏的进度。我有一段代码,可以在没有文件的情况下创建该文件,并为其提供起始值,另一段代码可以在文件之前存在或新创建时读取该文件。这两个部分各自工作,但在一起时会出现错误。(ifstream myfile的重新声明) #包括 #包括 int i=0; 弦线; ifstream myfile(“progress.txt”); 如果(!myfile) { 流文件; myfile.open(“progress.txt”);//创建新文件 myfile是的,事实上,您两次声明my

我需要一个项目来保存用户玩游戏的进度。我有一段代码,可以在没有文件的情况下创建该文件,并为其提供起始值,另一段代码可以在文件之前存在或新创建时读取该文件。这两个部分各自工作,但在一起时会出现错误。(ifstream myfile的重新声明)

#包括
#包括
int i=0;
弦线;
ifstream myfile(“progress.txt”);
如果(!myfile)
{
流文件;
myfile.open(“progress.txt”);//创建新文件

myfile是的,事实上,您两次声明myfile
myfile
时都出现了编译错误。快速修复方法是使用不同的名称创建另一个流,或者最好关闭并重新打开它:

myfile.close();
myfile.open("progress.txt");
您必须将其替换为第二行
ifstream myfile;

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

更新:
起初我还没看到你在IF语句中创建了一个同名的<代码>流>代码>对象。如果你想同时读取和写入文件,你应该考虑将Myfile定义为“代码> fStase<代码>一开始,然后使用<代码> SekKa在写入后重置位置。< / P>不要重新声明。
myfile
?它工作得非常好,特别是对于我的案例,第一个解决方案,谢谢@SimoV8@DomainFlag不客气地说:“我还添加了一个关于如何更好地处理流读写的建议,只是从C++中的文件开始,P,你最后的建议我非常感激,非常感谢:
myfile.close();
myfile.open("progress.txt");
myfile.seekg(0);