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个字母字符,而不是一个字母,
要怎么弄?
比如
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就可以了。