C学习笔记12 getchar()

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{

long nc;
nc=0;
while(getchar()!=EOF)
    ++nc;
printf("%ld/n",nc);

 

 

 return 0;
}

阻塞式检查方式指的是只有在回车键按下之后才对此前是否有 Ctrl+Z 组合键按下进行检查,非阻塞式样指的是按下 Ctrl+D 之后立即响应的方式。如果在按 Ctrl+D 之前已经从键盘输入了字符,则 Ctrl+D的作用就相当于回车,即把这些字符送到输入缓冲区供读取使用,此时Ctrl+D不再起流结束符的作用。如果按 Ctrl+D 之前没有任何键盘输入,则 Ctrl+D 就是流结束的信号。

Windows系统中一般采用阻塞式检查 Ctrl+Z、Unix/Linux系统下一般采用非阻塞式的检查 Ctrl+D。

 

这个程序执行后,你随便输入一串字符 比如abcdef

他先把这些存在一个缓冲区中。当你按下回车后,GETCHAR()才开始从刚才的缓冲区中一个一个的读取字符。当这些字符读取完后,程序回等待用户继续输入新的一段字符到缓冲区。

要想得到文件尾EOF,在windows系统下是按下CTRL+Z. 而且必须在缓冲区为空的情况下,按下CTRL+Z再按下回车才会检测到EOF

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值