假设你有一个接收参数的命令行可执行文件。这个executalbe已经准备好了widechar,你想测试其中一个参数是否以HYPHEN情况开始,其中有一个选项:
命令-o foo
如果您不知道主机使用的字符集,您如何在代码中测试它? 应该是不可能在给定的控制台上由widechar森林中的另一个char生成相同的HYPHEN表示? (在这种情况下,它将是一个狂野的焦点: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"));
}
}
答案 0 :(得分:2)
在您的情况下,Windows将命令行作为UTF-16字符串提供,因此您不必担心字符集。只需检查(inputFile->c_str()[0] == L'-')
即可。当然,UTF-16是一个可变长度编码,但连字符由一个宽字符值表示。