一个关于cint的问题,大侠帮忙啊!
int a;
int flag = 0;
do {
cout<<"Please print a number:"<<endl;
cin>>a;
if( a<0 || a>10 ) flag = 1;
} while(flag = 0)
以上当输入一个字符比如"a"的话,会死循环,大概因为输入的不是int型吧。那要实现以上功能怎么改呢?
问题点数:20、回复次数:4Top
1 楼foxegg(大福神)回复于 2003-11-03 20:52:16 得分 0
太急了,还没完。
用cint怎么输入一个字符串,不定常的,帮帮忙啦。Top
2 楼hcj2002(流浪者·躬自厚而薄责于人 )回复于 2003-11-03 21:00:38 得分 5
int a;
int flag = 0;
do {
cout<<"Please print a number:"<<endl;
cin>>a;
if( a<0 || a>10 ) flag = 1;
} while(flag =1) //应该是flag=1是推出循环吧??
//如果while( flag =0 ),输入a时当然是死循环了,因为a的ASCII得
知为97,不满足(a<0 || a>10 )所以Flag=1,不能退出循环
Top
3 楼hcj2002(流浪者·躬自厚而薄责于人 )回复于 2003-11-03 21:03:05 得分 5
直接输入就可以了
string str;
cin >>str;
Top
4 楼mouseleeky(守夜人)回复于 2003-11-03 21:30:47 得分 10
第一个问题:你的while循环条件是不是不对啊?应该用双等号。
可以用ascii码判断输入的字符是不是在范围内。
第二个问题:可以直接输入类型为string的变量,不过需要:#include<string>
并且using std::string;Top




