C++中如何判断是不是整数?

来源:百度知道 编辑:UC知道 时间:2024/05/29 17:56:10
int main(int argc, char* argv[])
{
if(argc = 2 || ? ) //判断参数是2,并且是1-999时程序才开始,否则提示输入用法。
{程序开始... }
else
{ 提示用法... }
}
谢谢前辈们。
//判断参数是2,并且 参数内容 是1-999时程序才开始,否则提示输入用法。
Usage: <filename> number1
Example: <filename> 345 必这要输入程序才开始,否则提示输入用法。谢谢前辈们
有几位回答得很好,但还是都不行。

if(argc = 2 || ? )
改为:
if((argc = (int)argc) //判断argc是整数
&&(argc>=1)&&(argc<=999)//判断argc是1-999时
)

// 重新写了一遍程序,将判断整数部分写成一个函数

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int isInt(char* ar)
{
int i = atoi(ar); // 将参数转化为整数
if (i > 0 && i < 1000) // 是否是1-999之间
{
char temp[4] ;
if (strlen(itoa(i, temp, 10)) == strlen(ar)) // 排除参数中混有非数字字符或小数点的情况
return 1 ;
}
return 0 ;
}

int main(int argc, char* argv[])
{
if(argc == 2 && isInt(argv[1])) // 之前看到楼主举了两个参数的例子,只要稍作修改即可。 应注意到argc包含了程序文件名。
{
printf("程序开始\n") ;
return 1 ;
}
else
{
printf("参数有误 !") ;
return 0 ;
}
}

===========
应考虑到参数的可能情况:
参数数量;
参数是否在1-999之间;
参数中是否含有非数字字符,如atoi("12a")或atoi("12.0")得到的均为整数12,将整数12转回字串后再比