在函数后面有两个getchar()是什么意思
1个回答
展开全部
用于清除缓冲区。
原来输入的字符,由于某种原因留在缓冲区,没有输出出来。
用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()",用途相似。
原来输入的字符,由于某种原因留在缓冲区,没有输出出来。
用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()",用途相似。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询