C++ 命令行参数识别

标签 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)
}

最佳答案

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

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

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

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

关于C++ 命令行参数识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7381582/

相关文章:

java - 设置用于在 java 中登录的属性

php - JSON 的双重编码

bash - 转义单引号 ssh 远程命令

java - 使用 Commons CSV 解析 CSV - 引号内的引号导致 IOException

c - 使用 `option long_options[]` 时了解 `getopt_long`

command-line - 命令行参数 make 文件

c++ - 创建一个 const char* const* 数组

C++ 不能返回变量

android - 链接 OpenCV 库的顺序是什么?

c++ - "No newline at end of file"警告,即使在换行之后