今天学着做多线程,用控制台做简单程序。我只是一个编程爱好者,以前做的小程序都是直接windows界面的程序做的,最讨厌控制台程序,今天玩了一把,真是坑啊,COUT竟然不能输出字符串,除非直接在双引号内填加字符,用字符串数组就不行了。于是尝试用printf,不行,乱码,网上一查,_tprintf,用了,无效,S%输出第一个字母,s%输出字符串,乱码。有人说什么”控制台的默认代码页通常是 437,即旧的 IBM PC 代码页,这是在欧洲采用新货币之前设计的机器。您必须将控制台切换到另一种具有字符 SetConsoleOutputCP() 的编码。“我的系统是中文系统,我可以用控制台输出汉字,所以这个应该没什么道理。我加了一行SetConsoleOutputCP(936);果然没用。后来还是有高人说得加
_setmode(_fileno(stdout), _O_WTEXT);
有效,成功输出汉字。