Windows + VisualC++だと、ワイド文字出力の方法に違いがある。
マルチバイト文字とワイド文字 | Microsoft Learn
書式指定構文: "printf" および "wprintf" 関数 | Microsoft Learn
wide_character.cで、
/* ヘッダファイルのインクルード */ #include <stdio.h> /* 標準入出力 */ #include <locale.h> /* ロケール */ /* main関数の定義 */ int main(void){ /* ワイド文字の出力. */ printf("%C\n", L'あ'); /* printfで%Cでワイド文字'あ'を出力. */ /* ワイド文字列の出力. */ printf("%S\n", L"あいうえお"); /* printfで%Sでワイド文字列"あいうえお"を出力. */ /* プログラムの終了 */ return 0; }
%lcや%lsは、Windowsでも使えるし、%Cや%Sも、Linuxで使えた。
でもこれだと、
コンソールに正しくワイド文字が出力されないので、
ロケールをセットする。
この時、Windowsでは、LC_ALL, "japanese"をセット。
そうすると表示される。