在程序中,printf("%d", getchar())
打印出额外的10。
当我像a一样输入时,它会打印9710而不是97,对其他人一样
#include <stdio.h>
int main() {
int c;
while((c=getchar()) != EOF) {
printf("%d", c);
}
printf("\n\tENDED\n\n");
return 0;
}
me@Device-xx:~/Desktop/Test/Tmps$ gcc 118.c -o 118
me@Device-xx:~/Desktop/Test/Tmps$ ./118
a
9710s
11510x
12010
答案 0 :(得分:4)
您没有将a
传递给STDIN。因为您按了a
并按Enter,所以您传递了a
和一个换行符。假设基于ASCII的编码(例如UTF-8),
a
的编码为0x61 = 97 也许你想要
while (1) {
int c = getchar();
// Stop when a Line Feed or EOF is encountered.
if (c == EOF || c == 0x0A) {
break;
}
printf("%d", c);
}