C++ Cin输入字母后 程序立刻结束 怎么办??
作者&投稿:蓍非 (若有异议请与网页底部的电邮联系)
ctrl+z然后按两下回车就行了
ctrl+z然后按两下回车就行了
你应该用字符串读入,然后判断这个字符串是否是浮点数。
其实浮点数有字母也是正常的呀,像1.23e10,就代表1.23x10^10次方,213H,代表这个是16进制的数。
你可以改成:
int age;
char name,country;
cout <<...
cin >> age;
cin >>name;
cin >>country;
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;
你定义的数据类型错误,只要将int改为char就可以了。
在程序结束前再加个cin>>a;
禽唐威特: cin>>a; 程序预期输入的是数字,你输入非法字符后,cin这个对象就失效了,在以后的输入语句中也就不会再阻塞等待输入了.修正如下: int age; char name[32]; string country; do{ coutcout.flush(); cin.clear(); cin>>age; }while (cin.fail()); coutcin>>name; coutcin>>country; coutcoutcout
白玉县13634665451: c++ 输入字母 要立即退出!!!急!! - ?
禽唐威特: #includeusing namespace std; int main() { char s; coutcoutcoutcoutcoutcoutcin>>s; switch(s) { case '2':break; default:exit(0); } coutcoutint b,c,d; cin>>b; cin>>c; d=b+c; coutsystem("pause"); return 0; } 是这样么?输入的是2继续,其他的就退出?
白玉县13634665451: 如何用c++语言编写代码,使输入一个小写字母,假如该字母在字母表的前半部分,就输出该字母的下个字母, - ?
禽唐威特: #includevoid main() { char c; cout<<"输入一个小写字母"< cin>>c; if(c>='a'&&c<='m') cout<<++c< }
白玉县13634665451: c/c++中,输入字母后,程序马上结束. 我急!!求了 - ?
禽唐威特: 建议你 这么改 我没改GOTO 语句 但我知道你的意思了 你要判别输入的键值 然后执行相应的退出或继续操作 一下我改的部分可以实现你的想法#include #include#define Q 0x1b //定义Esc键的键值 main() { int a,n,c; char ch; q: printf("please input...
白玉县13634665451: c++编程中有时为什么scanf能输入而cin则直接跳出程序哈!?
禽唐威特: cin是个输入流,先调用cin 对象的SetWide()设置字符宽度,cin>>b就ok了;
白玉县13634665451: 怎么解决c++输入字母时的死循环 - ?
禽唐威特: 在scanf("%d",&a);之前加一句fflush(stdin); 清缓存如: int a,b; printf("enter the number:\n"); fflush(stdin); scanf("%d",&a);
白玉县13634665451: C++编程怎么实现输入一个字符后程序结束 - ?
禽唐威特: 1 读取字符;2 判断读到的字符值,如果符合执行3,否则退出函数.3 结束程序.如果是任意字符,那么2可以省略.结束程序可以调用系统函数exit.参考代码如下:#include<stdlib.h>//exit函数声明于此文件中.void get_key_and_exit(void) { char c; c = getchar(); if(c == 'Y' || c=='y')//当输入y时退出,不区分大小写. exit(0);//退出程序.}
白玉县13634665451: c++ 为什么打入字母会死循环 怎么解决 - ?
禽唐威特: 试图读取整数,没有读到,只要把输入缓冲区清空了继续读就可以了,空格等也是字符,读整数包括浮点数时,如果有空白符会被跳过,但会不自动跳过非空白非数字字符,你得主动点,一句 cin.clear(); 就清空了全部...或者你这里干脆不要...
白玉县13634665451: c++,每次运行输入了数字之后立刻就结束了,无法输入字符串,为啥啊 - ?
禽唐威特: int main(){int i;char s[20]; for(i=0;i<20;i++) s[i]=' ';cin.getline(s,20);for(i=0;i<20;i++) if(s[i] != ' ') cout<<s[i];return 0; } //这样. //你a和s不是相同类型的,回出问题. //还有,输出字符串要用循环,字符串数组名s只是数组元素的首地址. //此方法简单易会,适合新手. //或者用string
白玉县13634665451: C++如何实现我按一个字母程序就立即输出这个字母,而不是有一个光标等着我输入,并且输入后按回车才执 - ?
禽唐威特: 不会的,它的输入函数就是那样设计的,除非你自己重载输入函数,修改底层代码,那完全是给自己找麻烦