C++ cin的用法

1。下面的程序,我想实现这样的功能:输入合法的数字即可退出,输入错误则重新输入。
#include <iostream>
using namespace std;
int main()
{ int a;
while(!(cin>>a))
{cout<<"Error!Input again!"<<endl;} 
return 0;
}
若输入的是数字,程序能退出。可是当输入字符的时候,就会不断地输出Error!Input again!
进入了死循环。请问为什么会这样。要怎么才能解决。
加了continue语句仍然是那样

其实是这样的,我本来的程序是要根据用户输入的选项来进行调用某些函数的,选择只有1.2.3.4这样。我想。如果用户输入了字母或其他的字符,那么程序就不能正常运行了。所以,如果用户输入了字符的话,则重新输入数据

3楼的,其实我是想输入错误就提出,并不退出
4楼的,你的结果可以用,可是我想知道的使为什么我原来的用法不行。这才是最重要的.
5楼的方案也行,不过我正的想知道为什么原来我的那个不行(补基础)。

繁星淼淼
浏览 728回答 2
2回答

慕田峪4524236

cin>>a;键盘读入数据赋值给a;cin:C++编程语言互换流中的标准输入流,需要iostream.h支持,程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。1234567891011//例如:#&nbsp;include<iostream>using&nbsp;namespace&nbsp;std;int&nbsp;main(void){&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;a;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout<<"请输入一个数字,按回车结束"<<endl;&nbsp;&nbsp;&nbsp;&nbsp;cin>>a;//输入并赋值&nbsp;&nbsp;&nbsp;&nbsp;cout<<a<<endl;//输出&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;}
打开App,查看更多内容
随时随地看视频慕课网APP