我需要能够判断命令行中的最后一个参数是否用双引号引起来。如果它用双引号引起来,我将其视为字符串。如果不是,我需要把它当作一个文件来打开并获取字符串。默认情况下,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/