簡體   English   中英

用 C 打印數字

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM