我正在尝试将数字写入二进制文件,然后将其读回。
但是当我输入超过13个数字时,程序卡住并且不向我显示结果。
这是我的代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp;
int a[100],
b[100],
i,n;
fp=fopen("temp.dat", "w+b");
printf("Enter N: \n");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("Enter (%d) number \n",i+1);
scanf("%d",&a[i]);
}
fwrite(a, sizeof(a), n , fp);
rewind(fp);
fread(b, sizeof(b), n , fp);
printf("Results \n");
for (i = 0; i < n; i++)
printf("%d \n", b[i]);
fclose(fp);
system("pause");
return 0;
}
答案 0 :(得分:2)
此:
fread(b, sizeof(b), n , fp);
在sizeof(b) * n
数组中读取b
个字节,但b
只有sizeof b
个字节。
您的fwrite
电话也存在类似问题。
我建议您再次阅读fread
和fwrite
函数手册。