输入数据时,会先存在缓冲区,后面再输出显示
即:数据–>缓冲区–>显示器
多数据输入错误情况
连续输入数据时,为了防止某个数据的输入格式错误而导致后面数据出错,可以用
cin.clear();
cin.sync();
清除每个数据后的缓冲区
例如:
要求依次输入整数、浮点数和字符,没有清除数据流缓冲区时:
#include <iostream>
using namespace std;
int main()
{
int a;
double b;
char c;
cout<<"Input int double char:";
cin>>a;
cin>>b;
cin>>c;
cout<<"a is:"<<a<<endl;
cout<<"b is:"<<b<<endl;
cout<<"c is:"<<c<<endl;
return 0;
}
当错误输入1.2 3.4 k 时:
当用函数清除数据缓冲区后:
#include <iostream>
using namespace std;
int main()
{
int a;
double b;
char c;
cout<<"Input int double char:";
cin>>a;
cin.clear();
cin.sync();//这两个函数要联合使用,用来清除缓存区的数据流.(数据-->缓冲区-->显示器)例如下面a,b,c输入时,如果某一个数输入有误时可以避免下一个数的赋值出错
cin>>b;
cin.clear();
cin.sync();
cin>>c;
cout<<"a is:"<<a<<endl;
cout<<"b is:"<<b<<endl;
cout<<"c is:"<<c<<endl;
return 0;
}
输入1.2 3.4 k 时: