wchar在c ++中使用char

时间:2010-05-24 13:07:58

标签: c++ string unicode windows-ce

我有一个Windows CE控制台应用程序,其入口点如下所示

int _tmain(int argc, _TCHAR* argv[])

我想检查argv[1]转换"-s" argv[2]的内容为整数。我无法缩小参数或访问它们进行测试。

我最初尝试了以下但收效甚微

if (argv[1] == L"-s")

我还尝试在每个字符上使用narrow wostringstream函数,但这会导致应用程序崩溃。

任何人都能解开一些光明吗? 感谢

4 个答案:

答案 0 :(得分:7)

应该是:

if (_tcscmp(argv[1], _T("-s")) == 0)

答案 1 :(得分:3)

if (argv[1] == L"-s")

即使对于比较指针的窄字符串,这也是不正确的。你需要

if(wcscmp(argv[1],L"-s")==0)

if(std::wstring(argv[1])==L"-s")

答案 2 :(得分:0)

argvchar*的数组,而不是string,因此与==的通常比较将无效。 if语句比较两个指针。你能构建一个wstring,然后进行比较吗?

if (wstring(argv[1]) == L"-s")

答案 3 :(得分:0)

您可能需要将argv []条目转换为字符串然后进行比较。 [链接文字] [1]

http://www.codeproject.com/Tips/81778/Converting-TCHAR-to-string-while-getting-PC-Name.aspx

[1]:

如果您可以转换为字符串,则上述链接会有所帮助。