wprintf(Windows)

Windowsのwprintfはややこしい。

printf、_printf_l、wprintf、_wprintf_l | Microsoft Learn
書式指定構文: "printf" および "wprintf" 関数 | Microsoft Learn
ワイド文字(C言語) - 超初心者向けプログラミング入門
iooiau blog: Visual C++ の wprintf の独自仕様

printfで出力の場合、

/* ヘッダファイルのインクルード */
#include <stdio.h>	/* 標準入出力 */
#include <locale.h>	/* ロケール */

/* main関数の定義 */
int main(void){

	/* ロケールのセット. */
	setlocale(LC_ALL, "japanese");	/* setlocaleでLC_ALL, "japanese"をセット. */

	/* マルチバイト文字の出力.(%c) */
	printf("%c\n", 'A');	/* printfで%cでマルチバイト文字'A'を出力. */

	/* マルチバイト文字列の出力.(%s) */
	printf("%s\n", "ABCDE");	/* printfで%sでマルチバイト文字列"ABCDE"を出力. */

	/* ワイド文字の出力.(%lc) */
	printf("%lc\n", L'あ');	/* printfで%lcでワイド文字'あ'を出力. */

	/* ワイド文字列の出力.(%ls) */
	printf("%ls\n", L"あいうえお");	/* printfで%lsでワイド文字列"あいうえお"を出力. */

	/* ワイド文字の出力.(%C) */
	printf("%C\n", L'あ');	/* printfで%Cでワイド文字'あ'を出力. */

	/* ワイド文字列の出力.(%S) */
	printf("%S\n", L"あいうえお");	/* printfで%Sでワイド文字列"あいうえお"を出力. */

	/* プログラムの終了 */
	return 0;

}

こう書くと、

こうなる
こうなる

こうなる。
wprintfだと、

こうで、

こうなる。
こうなる。

こうなる。
ポイントは、
1.wprintfで%C、%Sはchar。(Linuxでは%ls、%lcと同じでwchar_t。)
2.wprintfで%c、%sはwchat_t。(Linuxでは%cはchar、char配列の場合%hsを使う。)
3.wprintfでcharを使う場合は、%hc、%hsも使える。
ややこしい・・・。

Sample/c/wprintf/wprintf_Windows/src/wprintf at master · bg1bgst333/Sample · GitHub