浅析getchar用法
在K&R的开头碰到了getchar函数的用法有些迷糊,在查找了一些资料以及动手实践后有了大致的了解。
- getchar函数,是从缓冲区读取数据的,而不是直接从键盘输入中读取数据的
- 键盘的输入会保存在缓冲区中,同时会显示在屏幕上
- getchar函数执行时,每次从缓冲区中读取一个字符
- 键盘输入
enter
或者ctrl+D
后,getchar会检查缓冲区中是否有数据,如果有的话,会开始读取缓冲区中的数据
假设现在依次从键盘输入 1,2,3,4,会依次将1,2,3,4输入缓冲区中,也可以用backspace
从最后输入的字符删除缓冲区中的数据,直到输入enter
或者ctrl+D
时,getchar开始依次读取缓冲区内的数据。
需要注意的是,例如输入enter
时会先将\n
存入再刷新缓冲区,例如输入1,2,3,4,再输入enter
后,缓冲区中的数据依次是[1,2,3,4,\n]。getchar会按存入缓冲区的顺序读取数据,并且缓冲区在main函数执行结束后销毁。
getchar函数从缓冲区读取数据的意义:节省资源和时间,提高资源利用效率,而且可以修改缓冲区内的数据。
转载于:https://www.cnblogs.com/yuyin/articles/9636003.html
浅析getchar用法相关推荐
- getchar()用法 与 getch()函数使用方法
getchar()用法 1.从缓冲区读走一个字符,相当于清除缓冲区2.前面的scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完s[i]的值后按回车键所致),所以如果不在此加一个getc ...
- 浅析Promise用法
浅析Promise用法 要理解Promise要知道没有Promise的回调地狱 如何插入一段漂亮的代码片 Promise语法与then的用法 所谓Promise,简单说就是一个容器,里面保存着某个未来 ...
- c语言getchar用法_C语言 — 关键字
几十个关键字不多,用得多了自然会记住,相信大家也不会担心.下面是C语言中的 32 个关键字: 一丶C语言关键字 第一个关键字:auto 用来声明自动变量.可以显式的声明变量为自动变量.只要不是声明在所 ...
- C语言中putchar()和getchar()用法
C语言中除了可以用printf() scanf()输出输入字符以外,还可以用putchar() getchar()输出输入字符. putchar()是put character的缩写.作用是输出一个字 ...
- C语言之getchar()用法
(1)语法 int getchar(void); (2)返回值 getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不 ...
- Hdu 2027 getchar用法
统计元音 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- C语言 getchar用法
C语言之 getchar 语法: int x = getchar() 返回值: getchar函数返回用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕. int x = ...
- POJ 1185 炮兵阵地(状态压缩DP)
Description 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用&quo ...
- c 语言学习:基本操作,数组,字符串,指针
文章目录 基本操作 判断闰年平年 倒序输出五位数 赋值运算 用条件表达式求三个数的最大值 测试int,float,char类型在本机所占的字节数 单个字符的输入getchar() 使用*抑制符跳过输入 ...
最新文章
- JVM必备指南(转)
- 栈C/C++实现(数据结构严蔚敏版)
- 注意我写的OTA短信同步设置的代码有很多问题
- 错误记录(11): source is null for getProperty(null, name)
- oracle 查找上一个,查看ORACLE_HOME的另外一个方法
- 循环体中调用[NSString stringWithFormat:@%@,Object] 方法的内存问题
- datasource dbcp 数据源_数据源--.dbcp.BasicDataSource 使用
- 软件项目uat测试报告,项目管理-验证阶段-UAT测试报告.doc
- 跟着Nature Communications学作图--渐变火山图
- linux boot efi 大小,/boot/efi。
- Hibernate报错org.hibernate.MappingException: Unknown entity解决方法
- python中[-1]、[:-1]、[::-1]、[-1:-7:-1]的使用方法
- Day621.Spring Test 常见错误 -Spring编程常见错误
- 饿了么“短平快”创新项目的架构取舍之道
- 去香港读研——申请全过程
- opencv打开mp4文件_OpenCV 实现播放本地mp4视频或远程服务mp4视频
- [saiku]saiku3.8项目搭建步骤
- 如何写产品介绍PPT
- jdk11新特性——ZGC
- NyistOJ 2 括号匹配(栈)