我正在用 C 語言撰寫一個快取實驗室,我已經將整個輸入檔案列印在一個 char 陣列中,但是對我的快取實驗室在線的所有幫助都使用 int 來保存輸入檔案,所以我想我也需要它。我有一個三個輸入檔案。一個持有:
10
20
22
18
E10
210
12
我可以列印 10、20、22、18:
FILE* file;
int address;
file = fopen("address01" , "r");
while (fscanf(file, "%d", &address)) {
printf("%d\n", address);
}
fclose(file);
但它在 18 之后停止,因為下一個輸入是一個字符。我知道字符可以作為一個 int 單獨保存,那么當 E 和 10 在一起時我怎么也能做到這一點?
uj5u.com熱心網友回復:
您可以使用%x格式說明符將十六進制值讀入int. 例如:
int address;
if (fscanf(file, "%x", &address) == 1) {
printf("%d\n", address);
}
這會將十六進制值讀E10入int變數address。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/534175.html
標籤:C文件IO字符整数
上一篇:結構未初始化
