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
-
函数
+关注
关注
3文章
4303浏览量
62402 -
代码
+关注
关注
30文章
4741浏览量
68317
发布评论请先 登录
相关推荐
评论