1
我有一個動態的.txt文件,名爲library.txt,它只有一行數據。正是這一個:fread() - 要讀取整數,但它正在返回垃圾
63Book Title1|Book Author 1|Book Editor 1|2014|English|255|99.989998|
我試圖讀取該文件的第一個整數(在這種情況下,數字「63」)使用無效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」。
有人知道我的代碼有什麼問題嗎?你們能幫我嗎?
該文件存儲爲ascii字符。不是整數。也就是說,它是一個文本文件而不是二進制文件。考慮使用'fscanf'來代替您的預期目的。或者'fgets'然後手動解析每一行(在這種情況下'strtok'是有幫助的)。 – kaylum
'fread'不會做你認爲它做的事。 – immibis