就像标题所暗示的那样,我尝试使用 putchar()
来打印不等于测试 !=
的结果,但我得到的输出是问号。
代码如下:
#include <stdio.h>
main()
{
int c;
c = getchar() != EOF;
putchar(c);
}
我已经使用了 printf()
并且它有效:
#include <stdio.h>
main()
{
printf("%d",getchar()!=EOF);
}
我的问题是:为什么它不适用于 putchar
?
最佳答案
首先,接受比较 getchar()!=EOF
将产生一个 bool 值,该值将被转换为 1
(表示 true)或 0
(false) 当解释为任何整数类型时,语句:
printf("%d",getchar()!=EOF);
将此转换的值打印为格式化整数 - 因此您将看到打印的是“1”或“0”。
然而,声明:
putchar(c);
输出由 c
的值表示的实际字符(通常但不一定是 ASCII 值)。 0
和 1
表示的字符不是“可打印”字符,因此您的控制台将显示一些指示 - 在您的情况下,是一个问号。
关于c - 我使用函数 "putchar()"来打印测试结果,但我得到的却是一个问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58462597/