C++使用命令行参数

C++ using command line args

本文关键字:参数 命令行 C++      更新时间:2023-10-16

我打算在命令行中输入一个数字,比如说"./a.out 3",其中3是我试图检索的数字。我想知道为什么在我的例子中,我试图输出的两个数字不一样,从命令行参数中提取信息的最实用的方法是什么?感谢

int main(int argc, char* argv[]){

    char* openSpace = argv[1];
    int temp = *openSpace;
    cout<<*openSpace<<" is the open spot!"<<endl;
    cout<<temp<<" is the open spot!"<<endl;
    return 0;
}

argv[1]char*,您需要int。不幸的是,您不能仅仅更改变量的类型。相反,您必须将char*转换为int。为此,请使用atoi()函数。

int temp = atoi(argv[1]);

什么意思,它们不一样?他们当然是!第一个将字符"3"打印为字符,第二个将其打印为整数。也就是说,您可以获得字符"3"的ASCII值。

如果你想得到一个整数值,你可以使用atoi()strtol()boost::lexical_cast<int>()等。

不能使用int temp = *openSpace;之类的赋值将字符串转换为整数。您需要为此调用一个函数,比如标准C库中的atoi()