由於某種原因,我不知道爲什麼,我的fscanf代碼不起作用。我的朋友擁有相同的作業和相同的代碼適合他。爲什麼我的fscanf不工作?
ISBNPrefix::ISBNPrefix(const char * filename) {
FILE * prefixFile = NULL;
if (filename != NULL)
prefixFile = fopen(filename, "r");
}
bool ISBNPrefix::isRegistered (int area) const {
int areaDigit = 0;
bool check = false;
//rewind(prefixFile);
while(fscanf(prefixFile, "%d %*[^ ] %*[^\n]", &areaDigit) != EOF) {
if (areaDigit == area) {
check = true;
break;
}
}
return check;
}
它不正確fscanf,它應該在某些測試中返回true,但它返回false;我認爲它沒有正確掃描。任何人都可以看到有什麼不對?
我的文本文件的第一個四行是:
0 00 19
0 200 699
0 7000 8499
0 85000 89999
它通常有助於提供一個最小的例子:一段代碼(和樣品輸入),其他人可以運行重現你的錯誤。傾銷某些缺少代碼的代碼有時會使其更難以提供幫助。 – 2013-03-18 18:08:29
整個程序對我來說太長了,無法複製和粘貼所有程序。我試圖包括什麼是相關的。 @chrisaycock有3個部分的文件行,在那個函數中我只檢查第一部分 – user2140629 2013-03-18 18:09:50
但是我添加了%* [^]表示不保存該部分的「*」。我的朋友擁有相同的代碼,適用於他。 @chrisaycock – user2140629 2013-03-18 18:14:28