目前我正在學習C. 從文件中讀取反正切正題:Ç如何使用sscanf的正確支持
文本文件的內容:
123456 James Doakes; 0
987987 Dexter Morgan; 0
010203 Masuka Perv; 0
int main()
{
char accountNr[ACCOUNTNRSIZE], ownerName[NAMESIZE], enter[3];
int accountBalance = 0;
char filename[] = "breg.txt";
FILE *file = fopen(filename, "r");
if (file != NULL) {
char line[128];
while (fgets(line, sizeof(line), file) != NULL) {
sscanf(line, "%s %[^;] %d ", accountNr, ownerName, &accountBalance);
printf("%s", ownerName);
//fflushstdin();
}
fclose(file);
} else {
perror(filename);
}
return 0;
}
我寫這個來檢查例如James Doakes的名字是否正確註冊:
printf("%s", ownerName);
但是,當它打印出來就像標準輸出仍然是活動的,我可以推動回車,它會再次輸入名稱。我的目標當然是能夠將數字,全名和最後一個數字作爲單獨變量進行掃描。但它顯然不起作用。我猜測\ n也會被註冊。不知道,我只是在猜測。
我在做什麼錯?爲什麼?我該如何解決這個問題?
非常感謝, 米夫
嘗試'sscanf(line,「%s%[^;];%d」,accountNr,ownerName,&accountBalance);'或檢查其返回值,int r = sscanf(line,「%s%[^ ;];%d「,accountNr,ownerName,&accountBalance);如果(r == 3)/ * accountNr,ownerName和accountBalance掃描成功*/else if(r == 2)/ * aaccountNr和ownerName掃描成功*/else if(r == 1)/ * aaccountNr掃描成功* /其他/ *沒有掃描成功:(* /' –
當打印ownerName:'printf(「%s \ n」,ownerName)時還要添加一個''n'';' – chqrlie