_tmain的_TCHAR*argv只读取到每个参数第一个字母的问题

Posted 雷乌斯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了_tmain的_TCHAR*argv只读取到每个参数第一个字母的问题相关的知识,希望对你有一定的参考价值。

使用_tmain的话,在ascii环境下会生成

int main(int argc, char* argv[]);

在unicode环境下会生成

int wmain(int argc, wchar_t* argv[]);

所以实际上参数得到的是一个wchar*

它一个字母占用两个字节,代表普通的英文单词和符号只用到了前一个字节,第二个字节其实是空的。当使用cout和print的打印wchar的时候,他遇到第二个字节0,就认为到末尾了,就停止了打印。

要使用wcout代替cout。

或者_tprintf代替printf。

_tprintf也是可以根据实际情况选择调用的函数的

#define _tprintf        wprintf
#define _tprintf        printf


以上是关于_tmain的_TCHAR*argv只读取到每个参数第一个字母的问题的主要内容,如果未能解决你的问题,请参考以下文章

C语言 两个[不定参函数]之间如何进行 [参数传递]

(转) main(), _tmain(), wmain(), wWinMain(), _tWinMain()的区别

使用winapi搜索隐藏文件

c++中wchar转char

LoodLocalFonts

VS2008,C++程序,Unicode模式下读取txt内容到CString出现的问题