我试图通过编写一个简单的控制台程序来理解wchar_t在C中是如何工作的,也许它并不像我最初想的那么简单。
问题在于:
当我尝试使用wscanf获取一串字符时,它可以正常工作。
// Code 1
wchar_t wstr[10];
wprintf(L"Enter string: ");
wscanf(L"%ls", wstr);
wprintf(L"You have entered: %ls\n", wstr);
输出:
输入字符:煮
你输入了:煮
按任意键继续 。 。
这是可以预料的。但是如果我尝试获得单个字符(wchar),它就会失败:
// Code 2
wchar_t wstr[10];
wprintf(L"Enter character: ");
wscanf(L"%lc", wstr); wstr[1] = L'\0';
wprintf(L"You have entered: %lc\n", wstr[0]);
输出:
输入字符:煮
您已输入:·
按任意键继续 。 。
我的系统区域设置目前设置为日语(日本)。有没有人经历过这个?