C语言 fread() -想要读取一个整数,但它返回垃圾



我有一个名为library.txt的动态.txt文件,它只有一行数据。就是这个:

63Book Title1|Book Author 1|Book Editor 1|2014|English|255|99.989998|

我试图读取文件上的第一个整数(在本例中,数字"63")使用void readInteger()函数,我创建:

void readInteger(){
FILE *arq = fopen("library.txt", "r+");
if(arq == NULL){
    printf("ERROR WHILE OPENING FILE!!!");
    return;
}
int x;
fread(&x, sizeof(int), 1, arq);
printf("%d", x);
return;
}  

但是这个函数总是不停地打印疯狂的数字"1866609462"。
有人知道我的代码有什么问题吗?你们能帮帮我吗?

fread不是用来读取格式化数据的正确函数。用fscanf代替。

fscanf(arq, "%d", &x);

相关内容

  • 没有找到相关文章