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

Qui*_*k19 1 c file fwrite fread

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

63Book Title1|Book Author 1|Book Editor 1|2014|English|255|99.989998|
Run Code Online (Sandbox Code Playgroud)

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

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;
}  
Run Code Online (Sandbox Code Playgroud)

但该功能始终保持打印疯狂的数字"1866609462".
有谁知道我的代码有什么问题?你能帮帮我吗?

R S*_*ahu 6

fread不是用于读取格式化数据的正确函数.请fscanf改用.

fscanf(arq, "%d", &x);
Run Code Online (Sandbox Code Playgroud)