我想將char轉換爲int。但是,當我使用通常的方式使用getchar()將char轉換爲int額外的數字
convertedInt = c - '0';
打印結果時,我得到一個額外的負數。比如這個代碼與輸入654產生輸出:
while (c != '\n'){
c = getchar();
convertedInt = c - '0';
printf("%d\n", convertedInt);
}
//Output
4
5
6
-38
我不認爲這有什麼用的getchar,因爲如果我只是打印字符而不轉換它,我得到預期的輸出。
寫一個if語句不打印負數。 – Pbd
我同意,這是一個有效的解決方案,但我不喜歡它。似乎馬虎。我想知道爲什麼會發生這種情況,如果我沒有if語句就可以阻止它。 (如果我不知道它爲什麼會出現,我怎麼知道它會是-38) – frillybob
這只是因爲你的字符串有一些你不知道的額外字符! – Pbd