fread() - 想要读取一个整数但它返回垃圾
fread() - Want to read an integer but it is returning garbage
我有一个名为 library.txt 的动态 .txt 文件,它只有一行数据。正是这个:
63Book Title1|Book Author 1|Book Editor 1|2014|English|255|99.989998|
我正在尝试使用我创建的 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;
}
但是这个函数总是不停地打印这个疯狂的数字“1866609462”。
有谁知道我的代码有什么问题?你们能帮帮我吗?
fread
不是用于读取格式化数据的正确函数。请改用 fscanf
。
fscanf(arq, "%d", &x);
我有一个名为 library.txt 的动态 .txt 文件,它只有一行数据。正是这个:
63Book Title1|Book Author 1|Book Editor 1|2014|English|255|99.989998|
我正在尝试使用我创建的 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;
}
但是这个函数总是不停地打印这个疯狂的数字“1866609462”。
有谁知道我的代码有什么问题?你们能帮帮我吗?
fread
不是用于读取格式化数据的正确函数。请改用 fscanf
。
fscanf(arq, "%d", &x);