wchar_t* 文字列を出力しようとしています。コードは以下のとおりです。
#include <stdio.h>
#include <string.h>
#include <wchar.h>
char *ascii_ = "中日友好"; //line-1
wchar_t *wchar_ = L"中日友好"; //line-2
int main()
{
printf("ascii_: %s\n", ascii_); //line-3
wprintf(L"wchar_: %s\n", wchar_); //line-4
return 0;
}
//Output
ascii_: 中日友好
質問:
行 1 の char* ポインターに CJK 文字を割り当てるべきではないようですが、行 3 の出力は正しいので、なぜですか? 行 3 の printf() で非 ASCII 文字を取得するにはどうすればよいですか? どういうわけかエンコーディングを知っていますか?
2 行目と 4 行目のコードは正しいと思いますが、4 行目の出力が得られなかったのはなぜですか?