我不太了解 C 中的檔案處理。在我file.txt的第一行中是這樣的:
25031470760,1234
我想單獨閱讀它們,例如:
FILE* filep = fopen("myfile.txt","r");
char id[20];
int password;
fscanf(filep,"%s,%d");
我想要id = 25031470760,password = 1234
但是當我列印它們時:
printf("%s %d",id,password);
輸出是荒謬的:25031470760,1234 2201625031470760,1234 22016
非常感謝您的幫助。
uj5u.com熱心網友回復:
fscanf(filep,"%s,%d");以各種方式失敗。
沒有寬度限制
"%s"會超支。使用寬度限制
char id[20];
...
fscanf(filep,"s,%d");
不會停下來,
"%s"將讀取并保存','. 考慮" %[^,\n]"1) 跳過前導空格,然后 2) 保存所有非逗號、非行尾字符。
fscanf(filep," [^,\n],%d");
檢查回傳值
if (fscanf(filep," [^,\n],%d") == 2) {
Success();
} else {
Fail();
}
缺少fopen()成功檢查
FILE* filep = fopen("myfile.txt","r");
if (filep == NULL) {
puts("File to open");
return fail; // Illustrative code.
}
或許還有其他問題
鑒于 OP 的 2 個輸出,我懷疑為什么“while (!feof (file))”總是錯誤的?.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/439321.html
上一篇:未定義值的索引處的陣列值
下一篇:Free()不釋放記憶體
