【C++】第一章:用函数清除数据流缓存区

输入数据时,会先存在缓冲区,后面再输出显示
即:数据–>缓冲区–>显示器

多数据输入错误情况

连续输入数据时,为了防止某个数据的输入格式错误而导致后面数据出错,可以用
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 时:
子片描述

发布了19 篇原创文章 · 获赞 0 · 访问量 228

猜你喜欢

转载自blog.csdn.net/weixin_44825297/article/details/104815971
今日推荐