C ++命令行参数识别

时间:2011-09-11 22:03:51

标签: c++ command-line-arguments double-quotes command-line-interface

我需要能够判断命令行中的最后一个参数是否用双引号括起来。如果它是双引号,我将它视为一个字符串。如果不是,我需要将其视为要打开的文件并获取字符串。默认情况下,Argv将获取双引号字符串并删除引号,因此我无法找到解决此问题的方法。

伪代码是这样的......

if(argv[argc-1] was called with surrounding double quotes){
    //handle as string (I already have code to do this)
}
else{
    //handle as filename (I already have code to do this)
}

1 个答案:

答案 0 :(得分:2)

argv中的所有参数都是字符串。你可能最好重新考虑你的策略。尝试打开参数,如果失败则将其视为字符串。

或者,您可以在命令行中转义引号,它们将传递给您的应用程序:

$ program "\"this is a string\""

编辑:示例代码假设您使用的是Bash shell或类似的东西