为什么getchar()返回垃圾值?

时间:2019-03-23 21:06:30

标签: c

因此,我试图在我的C代码中获取输入,但是当我使用getchar()时,我一直在获取垃圾。

我尝试使用scanf()代替,但是没有运气。

#include <stdio.h>
int main(){
    int c;
    while((c=getchar()) != EOF){
        printf("%d", c); 
   }
}

我在bash shell上用文本文件作为输入来编译它,并且值根本不匹配。 我的输入

lo
hello, world
23

我的输出

lo
108
111
10
104
101
108
108
111
44
32
119
111
114
108
100
10
50
51
10
10

为什么会这样?

2 个答案:

答案 0 :(得分:1)

您的代码输出与您的代码读入的每个字符相对应的数字代码。大概是您的计算机用来表示您输入的字符的数字代码。

您没有说出您的期望或原因,但是它必须是一系列整数,因为这可能是您所有代码可以输出的结果。

答案 1 :(得分:-2)

顾名思义,

getchar得到一个char。您可以将其存储在int中,但是在打印时,需要将其视为一个字符。尝试使用"%c"格式的字符串printf,它将起作用。