どういうわけか、私の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が返されます。正しくスキャンされていないと思います。誰かが何が悪いのかわかりますか?
私のテキストファイルの最初の4行は次のとおりです。
0 00 19
0 200 699
0 7000 8499
0 85000 89999