问题描述
我很头疼,需要一个比我更聪明的人来告诉我我哪里错了/发生了什么。
我要做的就是打开一个文件,读取数字,在数字上加一个,用我的新数字截断文件,然后就完成了。目的是即使在我的(其他较大的)程序关闭后我也可以保留内存。每次我运行这个函数时它都会做一些奇怪的事情
#include <iostream>
#include <fstream>
using namespace std;
int getcount(){
int number;
ifstream indata;
ofstream otdata;
indata.open("count.txt");
indata>>number;
number++;
otdata.open("count.txt",ios::trunc);
otdata.close();
return number;
}
int main()
{
int i;
i=getcount();
cout<<i<<endl;
}
我当前的输出看起来像这样
32575 32655 65536 65536 65536 32622
有没有更好的方法来做到这一点?我应该在哪里看?我打错字了吗?我以前做过这样的事情,并阅读了文档、我的大学书籍等,找不到任何有启发性的东西。提前致谢。
解决方法
count.txt 是否存在?如果是这样,那么您在打开它之后似乎没有存储该数字(没有写回 otdata.open 和 otdata.close 之间的 number
)。此外,您应该在阅读完 indata 后关闭它。