目录
- gethcar()函数的介绍
- 缓冲区
getchar()函数的介绍
首先,我们要知道getchar()的作用是读取一个字符。我们可以打开cplusplus官网看一看相关介绍:
int getchar ( void );
从 stdin 获取字符
返回标准输入 (stdin) 中的下一个字符。
它等效于以 stdin 作为参数调用 getc。
📄参数:无
↩️返回值:成功时,将返回字符读取(提升为 int 值)。 返回类型为 int 以适应特殊值 EOF,这表示失败: 如果标准输入位于文件末尾,则该函数返回 EOF 并设置 stdin 的 eof 指示符 (feof)。 如果发生其他读取错误,该函数也会返回 EOF,但会改为设置其错误指示器(ferror)。
getchar()是接收一个字符,而putchar()就是一个打印字符。
想想我们为什么用int类型,而不是用char类型?
看看上面的介绍,会返回EOF,EOF又是什么东西呢?
EOF是-1,我们最好用int来接收,char类型只有一个字节。我们继续来看看一段代码:
我们每输入一个字符,那就打印一个字符,那我们该怎么去停止呢?
很简单,让getchar返回EOF的方法是:CTRL+Z我们来看看结果怎么样:
此时光标会直接停下来
缓冲区
我们还是来看看这一串代码
getchar()是直接从键盘读取字符吗?不是,与键盘之间有一个缓冲区,输入缓冲区。当输入缓冲区什么都没有的时候,getchar()此时就会等待:如一开始运行后光标一直在闪。当我们输入a的时候,我们需要回车,相当于给缓冲区输入一个a和\n。当getchar()读取的时候读取到a,a!=EOF,打印,继续下去遇到\n换行,进入下一行,这就是为什么会自动换行!
所以,我们可以知道getchar()可以用来清理缓冲区