我写了一段代码如下:
int number;
do{
cout<<"Please input Number:"<<flush;
cin>>number;
}while(number<=0);
当我输入的是一个字符时它就陷入了无限循环当中,这是为什么呀?我该怎么改这段代码呢?谢谢
我写了一段代码如下:
int number;
do{
cout<<"Please input Number:"<<flush;
cin>>number;
}while(number<=0);
当我输入的是一个字符时它就陷入了无限循环当中,这是为什么呀?我该怎么改这段代码呢?谢谢
do
{
cout<<"please input a number:"<<endl;
cin>>number;
cout<<number<<endl;
}while(number<0);
[此贴子已经被作者于2006-3-20 7:54:25编辑过]
同意
西部天狼
第一:你的数据类型不匹配应该定义成这样 char number
第二:你还没有对 number 进行判断
if(number>='0'&&number<='9')
还是不太明白,C++里不能自动将字符型通过ASCII码转换成数据型进行运行的吗?
#include <iostream>
#include <string>
using namespace std;
bool CheckNumber(string s);
int main()
{
while(1)
{
cout<<"please input a string (press \"q\" to quit)"<<endl;
string in;
cin>>in;
if (in=="q" || in=="Q" ) break;
if (CheckNumber(in)) cout<<"this is a number!"<<endl;
else cout<<"this is not a number !!!"<<endl;
}
return 0;
}
bool CheckNumber(string s)
{
const char *temp = s.c_str();
for(int i=0; i<s.length(); i++)
{
if(temp[i]>=57 || temp[i]<=48) return false;
}
return true;
}