控制台程序的中文输出乱码问题,printf,wprintf与setlocale
复制代码
#include <stdio.h>
#include <wchar.h>
int main(void) {
char str[] = “中文”;
wchar_t wstr[] = L"中文";
printf(“1:%s\n”, str);
wprintf(L"2:%s\n", wstr);
return 0;
}
复制代码
Windows平台下VS2008输出:
Windows平台下MinGW输出:
当加上setlocale函数设定后,
复制代码
#include <stdio.h>
#include <locale.h>
#include <wchar.h>
int main(void) {
setlocale(LC_CTYPE, “”);
char str[] = “中文”;
wchar_t wstr[] = L"中文";
printf(“1:%s\n”, str);
wprintf(L"2:%s\n", wstr);
return 0;
}
复制代码
输出分别为:
为解其中各种纷乱的纠结,又让我一个美好的下午就此悲剧= =.
=====================================&