所以当你在很长一段时间后修改“文件处理”时肯定会发生这种情况。好吧,我有点卡在这个代码中,我已经用过调试了。我从文件中获取整数:行列,然后我必须将它们的平均值存储在同一个文件中。
PS:如果我使用另一个文件存储平均值,它会起作用。
void main()
{
fstream f("abc.txt", ios::out | ios::app | ios::in);
int rows, cols;
f >> rows;
f >> cols;
int sum = 0, inp;
int *avg = new int[rows];
for(int i = 0; i < rows; i++)
{
sum = 0;
for(int j = 0; j < cols; j++)
{
f >> inp;
sum += inp;
}
avg[i] = (sum / cols);
}
f << endl;
for(int i = 0; i < rows; i++)
{
f << avg[i];
}
f.close();
delete [] avg;
}
答案 0 :(得分:0)
关于文件I / O,您的代码有两个(相当小的)问题:
第二点是相当简单的。
对于第一个,您可以关闭该文件,然后重新打开它以进行写入。如果您这样做,那么您应该只在第一次打开它时进行阅读。也就是说,程序覆盖刚刚处理的数据似乎很奇怪。这听起来像一个危险的,通常不是很有用的应用程序。你没有把数据写入另一个文件的原因是什么?
更新:我创建了以下abc.txt
文件:
5 3
11 12 13
21 22 23
31 32 33
41 42 43
51 52 53
按原样运行程序后,文件内容将更改为:
5 3
11 12 13
21 22 23
31 32 33
41 42 43
51 52 53
1222324252
如果这不是你想要的,我上面猜测你可能想要的东西也是错的,请解释你想要的东西。