2016-12-06 57 views
1

我試圖逐個字符地讀取文件,將字符存儲在變量中,檢查它是否爲特定值並繼續讀取整個文件。從文件讀取並檢查單個字符

這是迄今爲止我已經得到的代碼:

我想要的變量i遞增,如果字符是A(49 ASCII值),但該程序打印如下:0000000000.

+0

您的意思是int x = 0;或者int i = 0;?您需要將我初始化爲0或將我切換到x。 – mba12

+0

對不起,我在打印語句中寫了錯誤的變量。我已更新帖子以包含正確的變量。它仍然輸出0000000000雖然這不是我想要的。 – Chrome123

回答

0

你需要初始化你的計數器變量i。

FILE * fp; 
fp = fopen("doc.txt", "r"); 
int i = 0; /* switch x to i */ 

while (!feof(fp)) { 

    int fc = fgetc(fp); 

    if (fc == 49) { 
    i++; 
    } 
} 
printf("%d", i); 
+0

@ Chrome123在打印結束時,您仍然用i ++遞增。選擇x或i,然後在整個代碼中始終使用該變量。 – mba12

+0

@ Chrome123將您的打印語句移到while循環之外,以便在文件讀取完成之前不會輸出。輸入文件中有多少個字符。您應該已經看到與輸入錯誤的文件中的字符數相匹配的輸出。 – mba12

+0

@ Chrome123樂意幫忙。 – mba12