getchar()和EOF
(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相关推荐
- getchar()和EOF总结
大师级经典的著作,要字斟句酌的去读,去理解.以前在看K&R的The C Programming Language(SecondEdition) 第1.5节的字符输入/输出,被getchar() ...
- C语言学习笔记:switch语句、循环语句--while、for、getchar,eof概念(推荐MSDN查询函数概念等)
Switch语句:常用于多分支的情况 switch (整型表达式) { 语句项: } 其中,语句项是一些case语句,case可以放多个语句项: case 整型常量表达式: 语句: switch后面的 ...
- 常见的getchar 与EOF的问题
代码中常有类似的如下的输入循环 char c; while((c=getchar())!=EOF).... 如果输入 字符+换行时,循环的代码会执行两次,主要是换行键作为字符存到了缓存队列中,第一次 ...
- C语言的EOF是什么?getchar()!=EOF返回的是什么?
今天打算从新学习下C 结合这个高级语言学习算法等东西 ..第一天. 发现个小问题如标题.是<c语言程序设计(C语言之父)>---网友推荐的书.我看到前面的时候看到这个标题的问题. 测试代码 ...
- 基于C语言EOF与getchar()的使用详解
转自:http://www.jb51.net/article/36848.htm 大师级经典的著作,要字斟句酌的去读,去理解.以前在看K&R的The C Programming Languag ...
- getchar返回int类型
#include <stdio.h> /* copy input to output; 2nd version */ main() { int c; c = getchar(); whil ...
- EOF feof()
>> 关于文件结束符EOF EOF 是 End Of File 的缩写. 在 C 语言中,它是在标准库中定义的一个宏. 人们经常误认为 EOF 是从文件中读取的一个字符.其实,EOF 不是 ...
- 一文搞懂getchar()和putchar()的奇怪现象
1.首先来看一个例子: #include <stdio.h>int main( ) {int c;c = getchar();while (c != EOF){putchar();c= ...
- c语言 石头剪刀布的小程序,C语言小程序(七)、石头剪刀布
本来挺简单的一个程序,但突然想把<Friends>给糅合进去,就多花了一些心思,这是我写过最有趣的程序了. #include #include #include int getrand() ...
最新文章
- hadoop使用mapreduce统计词频_深圳嘉华学校之Hadoop简介(什么是Map-Reduce-Mapreduce-about云开发)...
- python单下划线和双下线的区别
- [工具]-电脑磁盘爆满了,但又不知道哪些文件占用的空间,怎么办?
- php 比较字符串或文章的相似度
- 戳破“砖家”假面:唯快不破的时代,为什么这件事一定要慢慢做?
- 使用PDF-XChange Editor为PDF文件添加图章(仅图片)
- 我已经不用 try catch 处理异常了!太辣鸡了!
- Java工作流系统jflow从表功能介绍一
- 最全名企笔试题+算法题
- html文本特效代码逐个出现,JS特效文字逐个显示
- 谷歌中国进入后李开复时代:向总部架构靠拢
- 图像工作回顾之三:极线匹配
- java注册用户_用java编程实现用户注册并进行登录操作
- 数据存储---内存列式数据库KDB+(Q)文档
- 第一章:计算机的软硬件基本结构_4
- android APP闪退后如何屏蔽自启动
- WPA2/WPA3混合与WPA3的hostapd配置区别
- 怎样远程控制另一台电脑
- 数据结构 在顺序表中头插及尾插的实现
- 真当Flutter不能热更新?QQ团队开源动态化Flutter,稳进大厂
热门文章
- eclipse配置java环境_Java工作环境的配置与Eclipse的安装过程
- 计算机与材料化学应用背景介绍,计算机在材料工程中的应用.ppt
- cytoscape插件下载_Cytoscape下载
- c++读取json文件_[SpringMVC]-SpringMVC架构-07-SpringMVC文件上传
- seo建设者_SEO建设者,有哪些说不出的苦?
- 零窗口探测怎么抓包_超低暗电流高性能近红外硅基光电探测器研究获进展
- Java 中的位移运算符
- redis集群的三种模式
- C/C++函数调用的压栈模型
- nginx会话保持值sticky模块