在c++中如何判断输入的数据是否是整数
(2009-05-09 13:12:33)
标签:
杂谈 |
分类: 计算机学习 |
方法一
C/C++ code
方法二
如输入的字串附给了String类型的参数str:
bool isInt;//是否参数
for(int i=0;i <str.Length();i++)
{
}
方法三
vc6.0
string ->char* -> int
函数名: atoi
功
用
程序例:
#include
<stdlib.h>
#include <stdio.h>
int main(void)
{
}
或者逐个提取字符串中字符,int resule=0; //记录最后结果
while(没到字符串尾)
{
result=result*10+'当前字符'-'0';
}
说明
其实不管从哪里输入的,都是一个字符,是你自己把它弄成整数了。
而且现在麻烦一点点,只是那么一点点。
不管cmd窗口是一个输入的,等下有个方法可以判断的。
文本框输入,程序的命令行、参数 你拿到手就是一个字符串。
1 首先,把从最左面开始是零的过滤掉。
那么剩下的可能就是正负数字了(+XXXXXXXXXXXXXXXx/-XXXXXXXXXXXXXXXXXXXXXx)(x
0~9)
2 计算字符串的长度
_I64_MAX 9223372036854775807
_I64_MIN 9223372036854775807
char I64INTMAX[] = "9223372036854775807";
char I64INTMIN[] = "9223372036854775808";
char INTFLAG[]
__int64 x= strlen(I64INTMIN)+1; 算正负号
2.2
2.3 确认长度没有问题,是( 0~9),前面有正负号,多少个0没有关系。
2.4 到这里只能保证你根据输入得到一个整数,到底原先输入的应该看是字符串 还时数字那么在继续
得到的应该和原来输入的是一样的,这个是因为,假如他原来输入的是9223372036854775828,你得到是一个负数。
不过这个情况你也可以认为他是正确的。就看怎么理解了
2.5 如果是uint64的话稍微麻烦,些因为 _UI64_MAX
同样怎么看是不是整数 就要看你的理解了,和程序处理了。
_ui64toa
_atoi64
-----------------------------------------------------------------------------------------------------------
atoi(str); sprintf
都会有问题的,
不是数字的会爆掉
__int64 时候,取不到
方法五
int
方法六
include