0

假设您有一个接收参数的命令行可执行文件。此执行程序已准备好宽字符,您想测试其中一个参数是否以 HYPHEN 案例开头,其中它是一个选项:

命令 -o foo

如果您不知道主机使用的字符集,您如何在代码中对其进行测试?给定的控制台应该不可能由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"));
   }
}
4

1 回答 1

2

在您的情况下,Windows 会将命令行作为 UTF-16 字符串提供,因此您不必担心字符集。只需检查一下(inputFile->c_str()[0] == L'-'),您就可以开始了。当然 UTF-16 是一种可变长度编码,但连字符由单个宽字符值表示。

于 2010-06-05T07:36:58.823 回答