调用wprintf()输出中日文无法正确显示的问题

最近发现用wprintf()在控制台上输出日文的时候,经常是什么也不显示。
调查了一下,发现原来是locale的问题。

输出日文之前必须调用setlocale(),例子如下。

#include <stdio.h>
#include <locale>
 
int main( void ) {
  char *loc = setlocale( LC_CTYPE, "" );
  printf( "%s\n", loc );
 
  setlocale( LC_ALL, loc );
  wprintf( L"表示されます!\n" );
 
  return 0;
}
 

 

 

同样道理,在控制台上输出中文也应该调用setlocale()。

 

 

你可能感兴趣的:(printf)