2015-09-09 33 views
0

我有optind指向我的第一个非开关参数。总数可以有多个参数。我需要将其余的参数连接成一个char*。我有一个循环,从arg[optind]arg[argc-1]并获得每个(长度+ 1)(一个用于参数之间的空格,最后一个用于'\0'totalLen += strlen(arg[i]) + 1。一旦我确定了最佳路径,通过另一个回路串联的ARGS连接命令行参数的最佳方法

回答

1

您可以使用std::string,它是通过argv[]operator +=()和环路和参数添加到字符串

std::string non_switch; 
for (int i = optind; i < argc; i++) 
    non_switch += argv[i]; 
+0

快一些​​相关的问题:如果我的程序调用的是:'MYPROG .o -a -b foo = bar stack -overflow'会把'optind'指向'foo = bar'还是?''''''''''会抛出关闭?我希望能够调用其他程序及其参数,因此需要并置。 – Ricca

+0

我不知道。我只是使用'optind'作为第一个非转换参数的索引,但我没有使用它。 – NathanOliver

相关问题