您的位置:首页 > 编程语言 > C语言/C++

C++判断输入内容是否为整数

2018-04-03 23:03 417 查看
最近遇到一个小问题,判断输入的内容是否为整数。
具体方法如下:
首先定义接收内容的字符串 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;
}当然这个也是有缺陷的,没有判断以0开头的情况:0 、00 、000;也没有判断负数的情况;不过实现起来应该都比较简单,有时间再补充吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐