定义接收内容的字符串 string s,调用C++的getline方法,格式如下:getline(cin,s),getline可以接收空格,遇到换行输入结束。然后依次判断字符串中的字符,是否为数字,如果遇到一个非数字的字符,则不是整数。
bool isDigit(char a) {
if (a - '0' == 0 || a - '0' == 1 || a - '0' == 2 || a - '0' == 3 ||
a - '0' == 4 || a - '0' == 5 || a - '0' == 6 || a - '0' == 7 ||
a - '0' == 8 || a - '0' == 9)
return true;
return false;
}
void testInteger(string y) {
for (int i = 0; i<y.length();i++)//字符串内容是否为整数
if (!isDigit(y[i])) {
cout<<"输入内容不是整数......"<<endl;
return;
}
//将字符串转化为数字
int num;
istringstream t(y);
t >> num;
cout<<"整数为:"<<num<<endl;
}
int main(){
string s;
cout << "请输入整数:"<<endl;
getline(cin, s);
testInteger(s);
return 0;
}
扩展资料:
C++判断输入函数方法:
//is int?bool isDegital(string str) {//判断没有输入的情况
if(str=="")
{
return false;
}
else {//有输入的情况
for (int i = 0;i < str.size();i++)
{
if (str.at(i) == '-' && str.size() > 1) // 有可能出现负数
continue;
数值在ascii码(编码)的‘0’-‘9’之间 if (str.at(i) > '9' || str.at(i) < '0')
return false;
}
return true;
}
}