C++ Cin输入字母后 程序立刻结束 怎么办??

来源:百度知道 编辑:UC知道 时间:2024/06/07 09:50:09
就是很简单的程序 目的就是输入人名:
比如
int a;
cout<<"........."<<;
cin>> a;

可是一输入数字以外的字符 程序就直接跳过下面的命令结束了?
怎么办?
就是本来应该:
name:xxx
age:xxx
country:xxx

名字那地方输入了字母,程序输出就会变成:
name:xxx
age:country:请按任意键结束...

那个name项 比如要输入tom,3个字母字符,而不是一个字母,
要怎么弄?

cin>>a; 程序预期输入的是数字,你输入非法字符后,cin这个对象就失效了,在以后的输入语句中也就不会再阻塞等待输入了。修正如下:

int age;
char name[32];
string country;

do{
cout<<"age=";
cout.flush();
cin.clear();
cin>>age;
}while (cin.fail());

cout<<"name="<<flush;
cin>>name;

cout<<"country="<<ends;
cin>>country;

cout<<"age="<<age<<endl;
cout<<"name="<<name<<endl;
cout<<"country="<<country<<endl;

你定义的a是整形,你输入字符当然退出
你可以改成:
int age;
char name,country;
cout <<...
cin >> age;
cin >>name;
cin >>country;

在程序结束前再加个cin>>a;

你定义的数据类型错误,只要将int改为char就可以了。