#define MAXN 1000000
FILE *fp1;
fp1 = fopen("num.txt", "w");
for(int i=0; i<MAXN; i++) {
int a = rand() % (MAXN/10);
fprintf(fp1, "%d", a);
}
...
FILE *fp2;
fp2 = fopen("num.txt", "r");
int a;
fscanf(fp2, "%d", &a);
printf("%d", a);
当我创建文件时,将其打开到fp。
我用fread读了它,我得错了数
(例如第一个数字6414,我得到了数字-1182340738)
我用'\ n'或''写它没有错误。
答案 0 :(得分:4)
似乎没有分隔数字的字符,当一个数字结束而下一个数字开始时,你的解析器如何知道?
我想这是你的问题,它认为这是一个非常大的数字,并且溢出到负面。
答案 1 :(得分:0)
如果你添加\n
,文件缓冲区将刷新,但没有\n
它将不会刷新,
所以你应该在打开fp2之前关闭第一个fp1。