转载自这里
如图所示,在有的时候遇到需要用到主函数参数的情况,但是写出来只能得到参数第一个字符。其中argc在后面跟两个参数的时候值为3,因为默认有一个参数argv[0],argv[0]是当前exe所在路径。
使用_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
所以在实际用的时候,在字符第1位就遇到了结束符,所以干脆写main而不是_tmain: