1

我有一个令人头疼的问题,需要一个比我更聪明的人来告诉我我错在哪里/发生了什么。

我要做的就是打开一个文件,读取数字,将数字加一,用我的新数字截断文件,然后完成。目的是即使在我的(其他较大的)程序关闭后我也可以保留内存。每次我运行该功能时,它都会做一些奇怪的事情

#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

有一个更好的方法吗?我应该去哪里看?我错字了吗?我以前做过这样的事情,并且阅读了文档,我的大学书籍等,找不到任何揭示的东西。先感谢您。

4

1 回答 1

0

count.txt 存在吗?如果是这样,看起来你在打开它后没有存储数字(没有写回numberotdata.open 和 otdata.close 之间的内容)。此外,您应该在阅读完 indata 后关闭它。

于 2021-04-03T06:38:11.217 回答