因此,我试图在我的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
为什么会这样?
答案 0 :(得分:1)
您的代码输出与您的代码读入的每个字符相对应的数字代码。大概是您的计算机用来表示您输入的字符的数字代码。
您没有说出您的期望或原因,但是它必须是一系列整数,因为这可能是您所有代码可以输出的结果。
答案 1 :(得分:-2)
getchar
得到一个char
。您可以将其存储在int
中,但是在打印时,需要将其视为一个字符。尝试使用"%c"
格式的字符串printf
,它将起作用。