使用空格传递命令行参数

时间:2014-04-08 04:48:31

标签: c++ command-line command-line-arguments

我有一个应用程序,它从命令行读取特定命令并处理命令。 例如:

我有一个名为" setparamval"用于设置参数值。 从命令行传递时此命令的语法如下所示:

setparamval <variable_name>,<value>

假设我有一个名为&#34; DESC&#34;的变量。我希望将值设置为&#34; ab cd ef gh&#34; 我将命令行参数传递为:

setparamval DESC,"ab cd ef gh" 

(我传递的内容&#34;&#34;,否则命令行将其视为单独的参数..)

直到这里一切都很好......

接下来,在我的代码中,我尝试使用以下命令从命令行传递的命令中提取参数名称和值:

char inputCmd[TAGNAME_LEN];
strcpy(inputCmd,argv[1]);

当我在&#34; inputCmd&#34;中看到值时,我得到:&#34; DESC,&#34; ab cd ef gh&#34;。 现在我想使用以下参数值(分隔符为&#34;,&#34;)分隔参数:

char *savePtr = NULL;
char *src = inputCmd;  //argv[1];
ch = strtok_r(src, ",", &savePtr);

当我在savePtr中看到值时,我得到:&#34;&#34; ab cd ef gh&#34;。 还有一个额外的&#34;添加到字符串的开头。 我不确定为什么会这样添加。

你可以帮我解决这个问题吗? 感谢您的耐心和帮助。

0 个答案:

没有答案