带薪年休假天数:C/C++中遇到的问题
来源:百度文库 编辑:杭州交通信息网 时间:2024/05/03 06:57:30
我做我的C++课程设计作业时突然发现一个很白痴的问题,如果定义一个变量为数字型(int或long),在从键盘输入赋值时输入的是字符就会出现死循环……请问为什么
打个比方吧:
main(){
int n;
cout<<"请输入:";
cin>>n;
if(n==1)
cout<<"hello!"<<endl;
else cout<<"笨蛋!"<<endl;
}
当上面的程序运行的时候要输入一个数字,但是当输入字母的时候就死循环了,大概就这个意思吧。
请问这个是为什么?
打个比方吧:
main(){
int n;
cout<<"请输入:";
cin>>n;
if(n==1)
cout<<"hello!"<<endl;
else cout<<"笨蛋!"<<endl;
}
当上面的程序运行的时候要输入一个数字,但是当输入字母的时候就死循环了,大概就这个意思吧。
请问这个是为什么?
你是不是在cin外加了层循环,本意是:如果不是你要的输入就继续读取
所以才会死循环
如果是这样的话,不要用这种方法,如果一定需要的话,在循环里加个次数限制,到达这个限制就不读了,打印错误信息,要不就用console io: getch
这个比较好用
没有呀,我用vc++6调试过,没有死循环
应该定义char 字符型n