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;也没有判断负数的情况;不过实现起来应该都比较简单,有时间再补充吧!
具体方法如下:
首先定义接收内容的字符串 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;也没有判断负数的情况;不过实现起来应该都比较简单,有时间再补充吧!
相关文章推荐
- C++判断输入的正整数是否为素数
- 判断是否为润年&&键盘输入一个10000以内的大于零的正整数,输出相应中文标识
- 我要学C#语言程序设计【解题篇】(二):输入三个整数,判断是否能够组成三角形
- 输入一个整数,然后判断是否是回文数
- 输入一个整数n,判断这个数是否质数
- javascript判断输入的内容是否合法
- (PHP实现剑指offer)在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
- 编写一个函数,从标准输入读取一列整数, 把这些值存储在一个动态分配的数组中并返回这个数组。 函数通过观察EOF判断输入列表是否结束。 数组的第一个数是数组包含的值的个数, 它的后面就是这些整数值。
- 2.1 输入一个长整数,判断是否为质数
- WinForm 中要求在textBox中输入的内容必须是日期格式yyyy-mm-dd,判断用户输入是否有效!
- 利用正则表达式判断输入内容是否全中文
- 在一个二维数组中,每一行都按照从左到右递增的顺序排列,每一列都按照从上到下递增的顺序排列,请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
- 异常处理 判断输入的是否是五个整数
- 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)
- JS判断输入是否为整数的正则表达式
- 输入一个整数判断是否是回文
- JS判断输入值是否为正整数
- JavaScript判断输入是否为正整数、浮点数等数字的函数
- javascript简单判断输入内容是否合法的方法
- 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数