为什么C++编写的程序第一次运行没错,之后运行就出现 出现程序错误

来源:百度知道 编辑:UC知道 时间:2024/05/28 17:36:07
原程序:
#include "stdio.h"
void main()
{
long data[100000]={0};
long i=0,j ,k=0;
FILE *fp;
fp=fopen("data.txt","r");
if(fp==NULL)
{
printf("文件不存在,请检查文件设置");
goto ending;
}
while (!feof(fp))
{
fscanf(fp,"%d",&k);
data[k]=data[k]++;
k=0;
}
fclose(fp);
fp=fopen("data2.txt","w+");
for(j=0;j<100000;j++)
if(data[j]>1)
{
fprintf(fp,"%d ",j);
if(j%6==0)
fprintf(fp,"\n");
}
fclose(fp);
printf("统计完毕!请查看data2.txt文件");
ending: getchar();

}

data.txt文件:

14589
14589
77202
18260
32415
53477
46611
25706
44740
58313
36268
83294
46450
13443
16622
77064
2643
23340
81210
2

可能是第二次运行时,这句没成功,而你没有判断就直接操作文件,所以出现未知错误,你在这里设一个断点看看。
fp=fopen("data2.txt","w+");

我帮你测试了。都是好的。你尝试下断点吧。看错误在哪个位置报的。

可能是你的程序不支持覆盖文件操作,只支持新增文件