[英]Printing numbers in C
所以我的問題是我想打印來自終端的數字,而這些數字與 EOF 不同。
例如,如果將 007 作為輸入,我希望輸出為 7,或者如果我輸入 42,我希望輸出為 42。
但出於某種原因,我得到的輸出是一個隨機數,我無法理解。
程序:
#include <stdio.h>
void ex04();
int main() {
ex04();
return 0;
}
void ex04() {
int c;
c = getchar();
while (c != EOF) {
printf("%d\n",c);
c = getchar();
}
}
Input: 007
my Output:
48
48
55
10
Correct Output: 7
任何幫助,將不勝感激。
getchar
旨在輸入包含空白字符的單個字符,例如具有代碼 10 的換行符'\\n'
。
因此,例如,如果您輸入數字 42,則 getchar 的第一次調用將返回具有 ASCII 代碼 52 的字符“4”和第二次調用 - 具有 ASCII 代碼 50 的字符“2”。
而是使用函數 scanf 作為例如
for ( int c; scanf( "%d", &c ) == 1; ) {
printf("%d\n",c);
}
注意你的問題有錯別字
my Output:
48
48
58
10
Correct Output: 7
字符 '7' 的 ASCII 碼是 55 而不是 58。:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.