c语言中测试c是否为eof,C语言中的EOF - fragile27的个人空间 - OSCHINA - 中文开源技术交流社区...

测试字符数

#include"stdio.h"

main()

{

int c;

long n = 0;

c = getchar();

while(c != EOF)

{

++n;

c = getchar();

}

printf("%ld\n", n);

getch();

}

两点:     如果将getchar()拿到循环外面,那么在循环里面一定要在写一遍

EOF不是手动输入的EOF为结束,而是:windows下ctrl+z   linux下 ctrl+d

Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF(如果在一行的中间按下Ctrl-D,则表示输出"标

准输入"的缓存区,所以这时必须按两次Ctrl-D);Windows中,Ctrl-Z表示EOF。(顺便提一句,Linux

中按下Ctrl-Z,表示将该进程中断,在后台挂起,用fg命令可以重新切回到前台;按下Ctrl-C表示终止该

进程。)

那么,如果真的想输入Ctrl-D怎么办?这时必须先按下Ctrl-V,然后就可以输入Ctrl-D,系统就不会认为

这是EOF信号。Ctrl-V表示按"字面含义"解读下一个输入,要是想按"字面含义"输入Ctrl-V,连续输入两

次就行了。

#include"stdio.h"

main()

{

int c;

long n = 0;

while((c = getchar()) != EOF)

{

++n;

}

printf("%ld\n", n);

getch();

}

问题:如果将EOF自定义的话,那如果判断是否为文件或者标准流的结束?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值