【发布时间】:2011-11-14 22:41:16
【问题描述】:
我需要能够判断我的命令行中的最后一个参数是否用双引号括起来。如果它在双引号中,我将其视为字符串。如果不是,我需要把它当作一个文件来打开并获取字符串。默认情况下,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)
}
【问题讨论】:
-
如何使用命令行参数来决定哪个是哪个? (即
-s用于字符串,-f用于文件名) -
您可能需要找到一种不同的用户方式来指定它是字符串还是文件名。
-
请注意,许多 shell 会以自己的方式解释引号,因此在某些时候您的设计可能会遇到一些意外。
-
您使用的是 Windows,并且永远不会更改为另一个操作系统?那么您可能会有机会,因为
find工具还可以区分引号和非引号。但如果你这样做了,你就不能再把main作为你的起点。
标签: c++ command-line-arguments double-quotes command-line-interface