无法从文件中读取数字

时间:2020-04-05 16:13:58

标签: c

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,但是当我运行控制台应用程序时,它显示了一个随机的大数字。如何解决它,以便它读取正确的数字?

1 个答案:

答案 0 :(得分:0)

fread的第一个参数is a pointer,但您这样称呼它:

fread(*(Number_Filep), sizeof(int), 1,f);

...所以第一个参数是*(Number_Filep)-一个整数。这不是您想要的。

您应该这样阅读:

fread(Number_Filep, sizeof(int), 1,f);
相关问题