我對C有點新,但基本上我有一個問題,我需要從文件中讀取'-1'。可悲的是,這意味着我遇到了文件的過早結尾,因爲EOF常量在我的編譯器中也是-1。C - 使用fscanf從文件中讀取'-1'
這會有什麼樣的解決方法?是否有另一個函數可以用來讀取它,將EOF更改爲我可以使用的東西?
在此先感謝。
,因爲人們都在問它
int read() {
int returnVal; // The value which we return
// Open the file if it isn't already opened
if (file == NULL) {
file = fopen(filename, "r");
}
// Read the number from the file
fscanf(file, "%i", &returnVal);
// Return this number
return returnVal;
}
這個數字是後來比較EOF的代碼。
好吧,這可能是不好的做法,但我改變了代碼以下
int readValue() {
int returnVal; // The value which we return
// Open the file if it isn't already opened
if (file == NULL) {
file = fopen(filename, "r");
}
// Read the number from the file
fscanf(file, "%i", &returnVal);
if (feof(file)) {
fclose(file);
return -1000;
}
// Return this number
return returnVal;
}
因爲我知道我永遠不會從我的文件中讀出任何這樣的數字(它們的範圍從約[-300,300]感謝您的所有幫助傢伙!
EOF常量是-1並不重要......應該永遠不會檢查您讀取的值,並且因-1以外的任何原因返回爲-1(或者什麼都不是)被讀取,你的記憶碰巧包含-1)。發佈你認爲你遇到問題的代碼,你可以得到幫助,但沒有這個問題,堆棧溢出標準是不完整的。 – mah