FILE*f;
if ((f = fopen("tester.bin", "rb"))==NULL)
{
printf("File cannot be opened");
exit(1);
}
int *Number_Filep = (int*)malloc(sizeof(int));
fread(*(Number_Filep), sizeof(int), 1,f);
printf("%d", *Number_Filep);
FILE*fp;
if ((fp = fopen("Data.txt", "w"))==NULL)
{
printf("File cannot be opened");
exit(1);
}
fprintf(fp,"Age: %d", *(Number_Filep));
fclose(fp);
free(Number_Filep);
fclose(f);
在文件中,数字为5,但是当我运行控制台应用程序时,它显示了一个随机的大数字。如何解决它,以便它读取正确的数字?
答案 0 :(得分:0)
fread
的第一个参数is a pointer,但您这样称呼它:
fread(*(Number_Filep), sizeof(int), 1,f);
...所以第一个参数是*(Number_Filep)
-一个整数。这不是您想要的。
您应该这样阅读:
fread(Number_Filep, sizeof(int), 1,f);