在函数后面有两个getchar()是什么意思

 我来答
LYB661
2017-07-02 · TA获得超过314个赞
知道小有建树答主
回答量:232
采纳率:0%
帮助的人:72.5万
展开全部
用于清除缓冲区。
原来输入的字符,由于某种原因留在缓冲区,没有输出出来。
用getchar()将字符提取出来,避免对下文的输入输出造成影响。
举一个简单的例子:
#include<iostream>
#include"stdio.h"

using namespace std;

int main()

{

char ch;

cin>>ch; //此处在屏幕上输入ab

cout<<ch<<endl<<endl;  //此处只输出a,b留在了缓冲区

//getchar(); //先不用此函数试试,再使用一次,看看效果
//cin.get();    //cin.get()与getchar()用途相似

int n;

cin>>n;

cout<<++n<<endl;

return 0;

}
第一个"cin>>ch"如果输入两个字符,那么只有一个被读取,另一个留在缓冲区里,如果不清除,则第二次输入"cin>>n"就读取了上一次遗留下来的一字符,这不是我们所希望发生的。所以用"getchar()"将第一次输入遗留在缓冲区中的字符清除掉。
值得注意的是getchar()j是C语言的字符函数。如果在C++程序使用,要求使用头文件"#include"stdio.h"。
另外,C++语言也有类似的函数,如"cin.get()",用途相似。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式