gpt4 book ai didi

c++ - 在 C 中解析命令行参数

转载 作者:太空宇宙 更新时间:2023-11-04 08:44:19 25 4
gpt4 key购买 nike

我有一个程序需要使用从命令行调用程序时应该设置的变量。我希望用户能够指定选项 -r-o-s-p以及一些整数。我以前从未处理过命令行参数,但在做了一些研究后,我想到了以下内容:

int main(int argc, char *argv[]){
for(k = 1; k < argc; k = k+2){
if(std::string(argv[k]) == "-r"){
n = atoi(std::string(argv[k+1]));
}else if(std::string(argv[k]) == "-o"){
o = atoi(std::string(argv[k+1]));
}else if(std::string(argv[k]) == "-s"){
p = atoi(std::string(argv[k+1]));
}else{
n = 1; o = 2; p = 3;
}
}
}

我的想法是用户会这样调用程序:

$ ./my_program -r 1000 -o 10000000 -s 1

以便在我的程序中相应地设置变量。但是,当我尝试使用我的 makefile 编译它时,出现错误:

    error: std undeclared (first use in this function)
if(std::string(argv[k]) == "-r"){
^

还有很多,但我不能全部输入。我敢肯定,如果我弄清楚了这个错误,我就能弄清楚其他错误。为什么 C 不喜欢我?

编辑:

快速说明一下,我确实包含了,但这并没有修复任何错误,并且调用 make 时的输出仍然相同。

最佳答案

你应该在这里使用getopt()getopt()getopt_long 函数自动执行解析典型 unix 命令行选项时涉及的一些琐事。它将为您省去所有的努力。

http://www.ibm.com/developerworks/aix/library/au-unix-getopt.html

关于c++ - 在 C 中解析命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22279303/

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