关于EOF

EOF(End of File),是ASCII码中的替换字符(Control-Z,代码26)。 

EOF不是特殊字符,而是定义在<stdio.h>中的一个常量,一般等于-1。#define EOF (-1)

以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。

验证布尔表达式getchar()!=EOF的值是0还是1

#include <stdio.h>
//验证布尔表达式getchar()!=EOF的值是0还是1

int main()
{
    int c;
    c = getchar() != EOF;//相当于(c = (getchar() != EOF))    
    printf("%d\n",c);
    return 0;
}

输入EOF的方式是Ctrl+Z(在Linux系统下,利用快捷键`ctrl+d`;在windows下用`ctrl+z`,就可以输入文件结束标志EOF了。 )

问题来了: 如果真的想输入Ctrl-D怎么办?这时必须先按下Ctrl-V,然后就可以输入Ctrl-D,系统就不会认为这是EOF信号。Ctrl-V表示按"字面含义"解读下一个输入,要是想按"字面含义"输入Ctrl-V,连续输入两次就行了。

输入字符串:1234567890    1    Press any key to continue 

输入空格:     1    Press any key to continue  

输入制表符:   1    Press any key to continue    

输入换行符,直接点击Enter即可 :    1    Press any key to continue   

总结:除Ctrl + Z结果为0,其余全部是1,说明EOF是Ctrl+Z方式输入的。

打印EOF值

 符号常量EOF是在头文件<stdio.h>中定义的,在win系统中EOF被定义为-1,在其他系统中可能被定义为其他的值。

这正是使用EOF等标准符号常量能够增加程序可移植性的重要原因。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值