C 为什么可以';它不能打印出用Shift-JIS编码的字符吗?

C 为什么可以';它不能打印出用Shift-JIS编码的字符吗?,c,mingw32,widechar,shift-jis,C,Mingw32,Widechar,Shift Jis,为什么A和B都不能打印Shift JIS中编码的字符?打印的是什么?垃圾0x82和0xCC作为两个单独的字符?当您将字符串转换为*printf()行时会发生什么情况?wchar\u t Str[3]={0x82,0xCC',\0'}?您的格式字符串错误%ls需要wchar\u t*,而不是char*。使用纯%s。查看类似问题。 #include <stdio.h> #include <stdlib.h> #include <locale.h> int mai

为什么A和B都不能打印Shift JIS中编码的字符?

打印的是什么?垃圾0x82和0xCC作为两个单独的字符?当您将字符串转换为
*printf()
行时会发生什么情况?
wchar\u t Str[3]={0x82,0xCC',\0'}?您的格式字符串错误<代码>%ls
需要
wchar\u t*
,而不是
char*
。使用纯
%s
。查看类似问题。
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int main (void)
{
    setlocale(LC_ALL, "ja_JP.Shift_JIS");
    char Str[3] = {0x82,0xCC,'\0'};
    printf ("(%ls)\n", Str);        // --> A
    wprintf (L"(%ls) \n", Str);     // --> B
    system ("pause");
}
(()