我很困惑,爲什麼會發生此錯誤。 我的代碼執行罰款,結果是我想要的東西,但是,編譯與命令我的C文件: 「GCC -std = C99 -Wall -o assignment2 assignment2.c」C警告與字符數組:「警告:數組下標具有類型'字符'」
下面是代碼:
下面是輸出錯誤:
我只想用這個,但我敢肯定,它可能有一些原因的埃羅r顯示,也因爲我的任務標記可能想要接受它,如果編譯時出現此警告。
我很困惑,爲什麼會發生此錯誤。 我的代碼執行罰款,結果是我想要的東西,但是,編譯與命令我的C文件: 「GCC -std = C99 -Wall -o assignment2 assignment2.c」C警告與字符數組:「警告:數組下標具有類型'字符'」
下面是代碼:
下面是輸出錯誤:
我只想用這個,但我敢肯定,它可能有一些原因的埃羅r顯示,也因爲我的任務標記可能想要接受它,如果編譯時出現此警告。
如果使用i
一個櫃檯,使用的int
代替char
int i = 0;
這將解決這個問題。
而且,c
應該是一個int
,因爲fgetc()
可以返回EOF
這是一個int
,和一般的fgetc()
返回類型爲int
,因此,你應該使用int
爲c
了。
你的代碼應該然後
char word[500];
int i = 0;
int c;
while (((c = fgetc(fp)) != EOF) && (c != '\n')) {
word[i++] = (char) c;
}
word[i] = '\0';
@KeineLust,代碼有未定義行爲,謝謝編輯。 –
噢,我正在嘗試這個以及來自其他在線答案,並最終失去了這個小錯誤。非常感謝您爲我指出這一點。 – jjyj
@jjyj這就是* Stack Overflow *的意思,它很有幫助。但請記住,下次應該發佈實際代碼而不是圖像。 –
i
應當進行評估,以便i < 500
是fullfilled
爲什麼'i'一個'char'? –