码迷,mamicode.com
首页 > 其他好文 > 详细

清空输入缓冲区

时间:2015-05-10 11:23:44      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:

/*
清空输入缓冲区
cin.clear():清除错误标记,比如要求输入int型,但我们输入了char型,就会导致输入错误,产生错误标记
cin.sync():清空输入缓冲区
cin.ignore(n,ch): 第一个参数是清空输入缓冲区的大小,第二个参数是终止字符(注:终止字符也会被丢弃),常用形式有以下两种:
cin.ignore(1024,‘\n‘)
cin.ignore(numeric_limits<streamsize>::max(),‘\n‘)  //此时需要包含头文件<limits>
注:
1.如果碰到EOF,ignore()函数也会结束
2.如果错误标记没有被清除,则即使清除了输入流依然无法进行输入,因此清除错误标记和清除输入缓冲区要结合使用
*/
#include <iostream>
#include <limits>
using namespace std;
int main()
{
int a;
cout<<"输入一个字母:"<<endl;
cin>>a;                    //int型变量中放了一个char型数据,输入流处于错误状态
cout<<"输入一个数字:"<<endl;
cin>>a;                 //由于输入流处于错误状态,因此无法进行输入
cout<<a<<endl;             //输出不确定值

cin.clear();                //清除错误标记
cin.sync();               //清除输入缓冲区
cout<<"输入一个数字:"<<endl;
cin>>a;
cout<<a<<endl;
return 0;
}

清空输入缓冲区

标签:

原文地址:http://www.cnblogs.com/kevinq/p/4491818.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!