|
#2
2010-05-07 12:50
|

{
agn: int a;
cout<<"input a number:";
cin>>a;
if (a<1||a>3) {cout<<"Error Occured,let's start again.\n";goto agn;}
switch (a){。。。省略 }
}
agn: int a;
cout<<"input a number:";
cin>>a;
if (a<1||a>3) {cout<<"Error Occured,let's start again.\n";goto agn;}
switch (a){。。。省略 }
}
编译通过并且可以运行,我用的是geany在g++.real (Ubuntu 4.3.2-1ubuntu12) 4.3.2下编译的
情况如下:
当输入数字(稍微小点)的时候,还可以正确的显示Error Occured,let's start again。然后等待重新输入
但是当我输入字母或者数字很大,比如大于2222222222(10个2)的时候就会出现
input a number:Error Occourd,let's start again
input a number:Error Occourd,let's start again
input a number:Error Occourd,let's start again
input a number:Error Occourd,let's start again。。。。。。。一直往下无限循环的显示。除非强制停止。
求高人帮助,我是超级菜鸟,想不通:
㈠为什么输入一个简单的字母就不行呢,不是说字符会强制变换成ASCII妈妈?我输入a,最多也就是97,为什么会和输入一个很大的数字出现的情况一样?
㈡为什么会出现agn无限循环的情况?
㈢当回到agn循环的时候,不是要等待输入重新赋值给a吗,为什么直接就能跳到Error Occourd,let's start again那里执行呢?
请说的相信一点。谢谢了。。
第一次注册发帖。没有多少分。。不好意思了
[ 本帖最后由 dmmc 于 2010-5-7 11:26 编辑 ]