如何用c语言验证getchar() != EOF,的值是0还是1?为什么我得出的结果是笑脸?

兄弟姐妹,请问下,如何用c语言验证getchar() != EOF,的值是0还是1?为什么我得出的结果是笑脸?
最新回答
南栀北辰

2024-12-01 04:51:42

EOF 的值通常为 -1,但它依系统有所不同。而ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。

如果读入的是EOF,那么输出结果不会是笑脸才对,你最好把你写的程序贴出来看一下。

ASCII中01和02对应的是笑脸。

下面是我写的验证程序:

#include <stdio.h>
int main()
{
char c;
if ((c = getchar()) != EOF);
{
printf("%d\n", c);
printf("%c", c);
}
return 0;
}

当输入ctrl+z时,输出结果是-1和一个空字符。

你可以看看。

追问
我用了这个程序,运行后,输入任意值,都会显示与其字符常量相对应的ascll码
ctrl+z,vc6默认为退格
不知道为何,没有求出—1
追答

不会吧。。。我用的是VS2010。。不过应该一样才对啊。你可以参考一下我的。

追问

运行程序后什么都没有,我输入a,求出ascii码等于97,任意键退出
我很好奇,哪里出了问题?系统不同?连接器的启动代码不同所以得出的结果不同?
追答
#include <stdio.h>
int main()
{
    char c;
    c = EOF; 
    printf("%d\n", c);
    printf("%c", c);
    return 0;
}

你试着改成这样,这是直接赋值,然后输出结果查看。如果这都没办法我也不知道了。

追问
请问EOF的值在哪,ascii码?
为什么大写?常量?
追答
认真看我回答,我很早就说了EOF是文件结束符,是由系统规定的。它不属于ASCII码。
不能理解请百度EOF和ASCII码对照表。
追问
非数字怎么对比,EOF明显只是几个无值变量名
只有用阿拉伯数字才能对比相等不等式啊,我不明白
a=b,ab不赋值机器根本不会识别字母
追答
EOF 的值通常为 -1!
EOF 的值通常为 -1!
EOF 的值通常为 -1!
能不能看清楚回答再问?
具体参照C语言标准库sdtdio.h头文件:
#define EOF (-1)
在系统之中,EOF根本不是一个字符,而是当系统读取到文件结尾,所返回的一个信号值(也就是-1)
Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF(如果在一行的中间按下Ctrl-D,则表示输出"标准输入"的缓存区,所以这时必须按两次Ctrl-D);Windows中,Ctrl-Z表示EOF。
追问
'EOF'的输出因该是—1?
别的提问回答,getchar()是读取键盘第一个输入字符的ascii码,根据课本的例子,程序运行后根本没有键盘输入的功能,会直接求值
getchar()是否等于c的ascii码
有什么c语言开源的专业论坛吗,我想实战
著名奶茶鉴定家

2024-12-01 04:49:19

ascii码的前几个就是一些图形符号,1,2是阴阳笑脸,3456分别是扑克牌的四种花色,你用字符格式输出就是图形,用数字格式输出就是数字了