#include <iostream.h>
#include <stdlib.h>void main()
{
int choice;
do
{
cout << "重新输入:\n"
<< " 1. 停止运行程序\n"
<< " 2. 重新输入\n"
<< " 3. 以默认参数运行" <<endl;
cin >> choice;
switch(choice)
{
case 1: exit(1);
case 2: break;
case 3: {
choice = 0;
break;
}
default : { cout << "wrong key , input again:\n";}
}
}while(choice);
cout <<"==EnD==="<<endl;
}当我输入整数的时候,运行正常,当我输入一个字母的时候,程序结束而不是
让我重新输入,我以为那时候choice的值不能让while为真,于是我把default
那句改成default : { cout << "wrong key , input again:\n"; choice = 4;}
结果,当我输入一字母,就出来一个死循环,为什么? 应该怎么改才能不管
输入什么,只要不是123,程序就让我重新输入?
还有,为什么会出现死循环的呢? 在cin >> choice;的时候为什么会不停下来?
#include <stdlib.h>void main()
{
int choice;
do
{
cout << "重新输入:\n"
<< " 1. 停止运行程序\n"
<< " 2. 重新输入\n"
<< " 3. 以默认参数运行" <<endl;
cin >> choice;
switch(choice)
{
case 1: exit(1);
case 2: break;
case 3: {
choice = 0;
break;
}
default : { cout << "wrong key , input again:\n";}
}
}while(choice);
cout <<"==EnD==="<<endl;
}当我输入整数的时候,运行正常,当我输入一个字母的时候,程序结束而不是
让我重新输入,我以为那时候choice的值不能让while为真,于是我把default
那句改成default : { cout << "wrong key , input again:\n"; choice = 4;}
结果,当我输入一字母,就出来一个死循环,为什么? 应该怎么改才能不管
输入什么,只要不是123,程序就让我重新输入?
还有,为什么会出现死循环的呢? 在cin >> choice;的时候为什么会不停下来?
我输入3333333333333333333333
wrong key , input again
重新输入:
1. 停止运行程序
2. 重新输入
3. 以默认参数运行
wrong key , input again
重新输入:
1. 停止运行程序
2. 重新输入
3. 以默认参数运行
===
一下就出来两个,然后再等待我输入。我输入
333333333333333333333333333m
wrong key , input again:
重新输入:
1. 停止运行程序
2. 重新输入
3. 以默认参数运行
wrong key , input again:
重新输入:
1. 停止运行程序
2. 重新输入
3. 以默认参数运行
wrong key , input again:
==EnD===
Press any key to continue
出来两个提示,并结束了程序,
有哪位能帮我解释一下么?
break;}
#include <iostream.h>
#include <stdlib.h>void main()
{
char choice;
do
{
cout << "重新输入:\n"
<< " 1. 停止运行程序\n"
<< " 2. 重新输入\n"
<< " 3. 以默认参数运行" <<endl;
cin >> choice;
switch(choice)
{
case '1': exit(1);
case '2': break;
case '3': {
choice = 0;
break;
}
default : { cout << "wrong key , input again:\n";}
}
}while(choice);
cout <<"==EnD==="<<endl;
}
#include <iostream.h>
#include <stdlib.h>void main()
{
char choice;
do
{
cout << "重新输入:\n"
<< " 1. 停止运行程序\n"
<< " 2. 重新输入\n"
<< " 3. 以默认参数运行" <<endl;
cin >> choice;
switch(choice)
{
case '1': exit(1);
case '2': break;
case '3': {
choice = 0;
break;
}
default : { cout << "wrong key , input again:\n";}
}
}while(choice);
cout <<"==EnD==="<<endl;
}
为什么改成default : { cout << "wrong key , input again:\n"; choice = 4;}不行呢?
那如果我输入一个字母,执行完default那句后,choice的值是什么?
还有,有cin >> choice;语句的存在,为什么会跳过这一句?
假若输入"A"
choice = 'A'
(0X41)所以错了。
运行到哪里之后,出现什么结果,某个参数的值为多少,跳转到哪里,执行
哪个语句,然后然后然后。这样我就可以知道为什么有时候输入某个值他会执行两次提示后再停在那里
让我继续输入,为什么有时候输入某个值他会执行两次提示后直接跳到结束
的部分,为什么有时候输入某个值他就一直不停地出现提示而跳过cin语句。
{
char choice;
do
{
cout << "重新输入:\n"
<< " 1. 停止运行程序\n"
<< " 2. 重新输入\n"
<< " 3. 以默认参数运行" <<endl;
cin >> choice;
getchar(); //接收回车键
switch(choice)
{
case '1': exit(1);
case '2': break;
case '3': {
choice = 0;
break;
}
default : { cout << "wrong key , input again:\n";}
}
}while(choice);
cout <<"==EnD==="<<endl;
}
之后,程序是怎么一步一步错下去的,而输入一个字符和输入一个超过int
能接受的最大值的整数结果又完全是不一样的,输入的整数后,好象程序是
把那个数截断了来处理的,所以大小不一样,出来的重复提示也不一样。望有热情的朋友能帮我解释一下。
嫌分不够我可以另给,不过我来csdn没几天,也没多少可用分