getchar()
getchar的定义:
int getchar(void)
返回类型是int值,所以返回的是字符的ascii码
参数列表中是void,所以不必在括号中传参数
如果getchar读取失败,就会返回eof
getchar()的一个重要机制
在getchar函数的作用与键盘间,存在一个输入缓冲区,从键盘输入的内容会存在这个缓冲中,接下来getchar函数会从缓冲区中取走内容
因为getchar是对于字符进行操作,所以每次执行getchar都会取走输入缓冲区中一个字符
并且getchar还会取走回车也就是\\n与空格
我们用下面的代码进行对输入缓冲区机制的测试:
int main()
{
char ch = 0;
while ((ch = getchar()) != eof)
{
putchar(ch);
}
return 0;
}
1
2
3
4
5
6
7
8
9
当输入一个字符a时,同时我们会按下回车,此时输入缓冲区中就有两个字符:a\\n
首先,getchar()会先取走字符a,然后通过putchar打印出来
接着循环,getchar()取走字符\\n,然后通过putchar打印出来,所以在输出中光标不在输出的a的后面,而在a的下一行
接着,输入缓冲区中以无内容,getchar()就会读到eof,退出循环
还可以用以下代码更进一步验证getchar()对于回车的读取:
int main()
{
int i = 0;
char ch = 0;
while ((ch = getchar()) != eof)
{
putchar(ch);
i++;
}
printf(%d, i);
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
输入字符a和b,这里实际上是输入a后,按一次回车,输入b后,按一次回车,所以输入缓冲区中的内容为:a\\nb\\n,所以getchar()会读取四次,所以i的值为会是4
原文链接:https://blog.csdn.net/weixin_64116522/article/details/127956631
华硕灵智S评测 值不值得买
以ADSP—BF533为例详解DSP的USB主从通信设计方案
韩国三星尖端研究所首次公开使用燃料电池的充电器
智能生活正在走来_家电有望告别“孤岛”现象
移动物联网是新基建的重要组成部分
getchar()函数详解
叉车AGV小车调度系统介绍
单片机与程序设计(下)
镍氢电池工作原理 镍氢电池的主要应用特性
当年很流行,现在已经淘汰的Java技术
vivo X9s、iphone7、三星S8、华为P10谁才是拍照之王?配置、性能、价格全解析!
机械动图来了,工作原理都能看明白!
关于非线性器件的建模与测试的分析和应用
天嵌针对数字标牌系统研发TQ4418广告机主板
高通骁龙845偷跑现身官网,最快将在今年正式发布!
增强了USB IP、SoC和Type-C子系统的验证解决方案
智能物流这块蛋糕,旷视准备怎么吃?
电机不启动故障维修经验分享
OPPO未来科技大会:官方发布海报将于本月10日举行
微波段多普勒雷达在体征检测领域的应用前景