(c=getchar())!=E0F

  这个式子很熟悉,但一直都没有去理解它的原理。所以今天在网上一顿搜索,基本理解了这些问题。

1.getchar()函数:

  这个函数是以行为单位进行存储的。停止的条件是接收到回车'\n'和结束符EOF。它的返回值有正负数,当有输入时候一般返回正直,除非遇到停止的消息时候,才会返回-1,即EOF;

    while((c = getchar()) != EOF){
        putchar(c);}

  在这里,getchar和putchar应该每次读入和输出一个字符,但是在终端上我们却发现情况并非如此,而是等待输入一行完成时才有输出。造成这种情况的原因是由于输入在停止前,操作系统的驱动不会通知getchar函数,控制权一直在getchar函数上,getchar函数这时处于阻塞状态,直到停止符出现,控制权才会交给putchar函数,完成输出。 

2.EOF

  EOF作为换行符,可以通知输入ctl+D来实现EOF的输入。在getchar函数中,通过这种操作可以结束它的阻塞。

  

  

getchar()和EOF相关推荐

  1. getchar()和EOF总结

    大师级经典的著作,要字斟句酌的去读,去理解.以前在看K&R的The C Programming Language(SecondEdition) 第1.5节的字符输入/输出,被getchar() ...

  2. C语言学习笔记:switch语句、循环语句--while、for、getchar,eof概念(推荐MSDN查询函数概念等)

    Switch语句:常用于多分支的情况 switch (整型表达式) { 语句项: } 其中,语句项是一些case语句,case可以放多个语句项: case 整型常量表达式: 语句: switch后面的 ...

  3. 常见的getchar 与EOF的问题

    代码中常有类似的如下的输入循环 char  c; while((c=getchar())!=EOF).... 如果输入 字符+换行时,循环的代码会执行两次,主要是换行键作为字符存到了缓存队列中,第一次 ...

  4. C语言的EOF是什么?getchar()!=EOF返回的是什么?

    今天打算从新学习下C 结合这个高级语言学习算法等东西 ..第一天. 发现个小问题如标题.是<c语言程序设计(C语言之父)>---网友推荐的书.我看到前面的时候看到这个标题的问题. 测试代码 ...

  5. 基于C语言EOF与getchar()的使用详解

    转自:http://www.jb51.net/article/36848.htm 大师级经典的著作,要字斟句酌的去读,去理解.以前在看K&R的The C Programming Languag ...

  6. getchar返回int类型

    #include <stdio.h> /* copy input to output; 2nd version */ main() { int c; c = getchar(); whil ...

  7. EOF feof()

    >> 关于文件结束符EOF EOF 是 End Of File 的缩写. 在 C 语言中,它是在标准库中定义的一个宏. 人们经常误认为 EOF 是从文件中读取的一个字符.其实,EOF 不是 ...

  8. 一文搞懂getchar()和putchar()的奇怪现象

    ​ 1.首先来看一个例子: #include <stdio.h>int main( ) {int c;c = getchar();while (c != EOF){putchar();c= ...

  9. c语言 石头剪刀布的小程序,C语言小程序(七)、石头剪刀布

    本来挺简单的一个程序,但突然想把<Friends>给糅合进去,就多花了一些心思,这是我写过最有趣的程序了. #include #include #include int getrand() ...

最新文章

  1. hadoop使用mapreduce统计词频_深圳嘉华学校之Hadoop简介(什么是Map-Reduce-Mapreduce-about云开发)...
  2. python单下划线和双下线的区别
  3. [工具]-电脑磁盘爆满了,但又不知道哪些文件占用的空间,怎么办?
  4. php 比较字符串或文章的相似度
  5. 戳破“砖家”假面:唯快不破的时代,为什么这件事一定要慢慢做?
  6. 使用PDF-XChange Editor为PDF文件添加图章(仅图片)
  7. 我已经不用 try catch 处理异常了!太辣鸡了!
  8. Java工作流系统jflow从表功能介绍一
  9. 最全名企笔试题+算法题
  10. html文本特效代码逐个出现,JS特效文字逐个显示
  11. 谷歌中国进入后李开复时代:向总部架构靠拢
  12. 图像工作回顾之三:极线匹配
  13. java注册用户_用java编程实现用户注册并进行登录操作
  14. 数据存储---内存列式数据库KDB+(Q)文档
  15. 第一章:计算机的软硬件基本结构_4
  16. android APP闪退后如何屏蔽自启动
  17. WPA2/WPA3混合与WPA3的hostapd配置区别
  18. 怎样远程控制另一台电脑
  19. 数据结构 在顺序表中头插及尾插的实现
  20. 真当Flutter不能热更新?QQ团队开源动态化Flutter,稳进大厂

热门文章

  1. eclipse配置java环境_Java工作环境的配置与Eclipse的安装过程
  2. 计算机与材料化学应用背景介绍,计算机在材料工程中的应用.ppt
  3. cytoscape插件下载_Cytoscape下载
  4. c++读取json文件_[SpringMVC]-SpringMVC架构-07-SpringMVC文件上传
  5. seo建设者_SEO建设者,有哪些说不出的苦?
  6. 零窗口探测怎么抓包_超低暗电流高性能近红外硅基光电探测器研究获进展
  7. Java 中的位移运算符
  8. redis集群的三种模式
  9. C/C++函数调用的压栈模型
  10. nginx会话保持值sticky模块