C++中cin的输入问题
三叶橄榄 2013-04-08 09:05:46 #include<iostream>
using namespace std;
int main()
{
int a=0,b=0;
cin >>a; //语句1
cout <<a; //语句2
cin >>b; //语句3
cout <<b; //语句4
return 0;
}
如果输入1,按回车显示1;然后再输入2,按回车显示2,这个正常
但现在问题是,在输入界面,如果按1,然后按空格,再按2,最后按回车,结果是输出12!
请问这个内部机制是如何实现的?在语句1本来应该只输入一个int型数然后按回车,把a显示出来,但现在我是按了1+空格+2+回车,那么是不是1和2都被储存在了cin的缓冲区?换句话说为什么语句3没有执行(没有让用户输入b的值)?执行完语句2之后,语句3究竟有没有执行?
望大神做详细解释!!!还有如果我要设置一个报错功能,就是在cin>>a;时,用户只能输入一个int型数,其它一切任何输入都将报错(当然包括输入1+空格+2+回车),改如何实现?