SUPOSE您的命令行可执行,可以接收参数。此opecutalbe已准备就绪,您要测试此参数之一是否从连字符案例开始,其中一个选择:

命令-o foo

如果您不知道主机使用的Charset,则如何在代码中测试它?在Widechar森林中,不可能将给定的控制台产生同一连字符代表? (在这种情况下,这将是一个狂野的字符:P)

int _tmain(int argc, _TCHAR* argv[])
{
   std::wstring inputFile(argv[1]);
   if(inputFile->c_str() <is an HYPHEN>)
   {
      _tprintf(_T("First argument cannot be an option"));
   }
}
有帮助吗?

解决方案

在您的情况下,Windows将作为UTF-16字符串提供命令行,因此您不必担心字符集。只是检查 (inputFile->c_str()[0] == L'-') 而且你应该很好。当然,UTF-16是一个可变长度编码,但是连字符字符由单个宽字节值表示。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top