0
我有optind
指向我的第一个非开关参数。总数可以有多个参数。我需要将其余的参数连接成一个char*
。我有一个循环,从arg[optind]
到arg[argc-1]
并获得每个(长度+ 1)(一个用于参数之间的空格,最后一个用于'\0'
:totalLen += strlen(arg[i]) + 1
。一旦我确定了最佳路径,通过另一个回路串联的ARGS连接命令行参数的最佳方法
我有optind
指向我的第一个非开关参数。总数可以有多个参数。我需要将其余的参数连接成一个char*
。我有一个循环,从arg[optind]
到arg[argc-1]
并获得每个(长度+ 1)(一个用于参数之间的空格,最后一个用于'\0'
:totalLen += strlen(arg[i]) + 1
。一旦我确定了最佳路径,通过另一个回路串联的ARGS连接命令行参数的最佳方法
您可以使用std::string
,它是通过argv[]
operator +=()
和环路和参数添加到字符串
std::string non_switch;
for (int i = optind; i < argc; i++)
non_switch += argv[i];
快一些相关的问题:如果我的程序调用的是:'MYPROG .o -a -b foo = bar stack -overflow'会把'optind'指向'foo = bar'还是?''''''''''会抛出关闭?我希望能够调用其他程序及其参数,因此需要并置。 – Ricca
我不知道。我只是使用'optind'作为第一个非转换参数的索引,但我没有使用它。 – NathanOliver