gpt4 book ai didi

c++ - 检查 argv[i] 是否为有效整数,在 main 中传递参数

转载 作者:行者123 更新时间:2023-11-30 01:56:52 24 4
gpt4 key购买 nike

我试图确保传递给 main 的所有参数都是有效的整数,如果不是,我将打印错误。例如,如果我有一个名为 total 的可执行文件,我将输入 total 1 2 3 4。如果存在无效整数,我想打印一条错误消息,因此如果我输入 total 1 2 3zy,它将打印一条错误消息。我的代码如下。

#include <iostream>
#include<stdlib.h>
using namespace std;

bool legal_int(char *str);

int main(int argc, char *argv[])
{
//int total = 0;
for(int i = 1; i < argc; i++)
{
if( (legal_int(argv[i]) == true) )
{
cout << "Good to go" << endl;
}
else
{
cerr << "Error: illegal integer." << endl;
return 1;
}
}

// int value = atoi(argv[i]);
//cout << value << endl;
}

bool legal_int(char *str)
{
while(str != 0) // need to
if( (isdigit(str)) )// do something here
{
return true;
}
else
{
return false;
}
}

我需要知道的是如何通过 legal_int 函数索引字符串中的所有字符并确保它们是数字?

最佳答案

比较每一个字符时,逻辑应该是如果不合法则返回false,否则继续:

bool legal_int(char *str)
{
while (str != 0)
{
if (!isdigit(*str))
{
return false;
}
str++;
}
return true;
}

关于c++ - 检查 argv[i] 是否为有效整数,在 main 中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19372145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com