我無法正確輸入字符值。這裏是我的代碼:Windows Cmd:無法正確輸入字符
#include <stdlib.h>
void main()
{
char buf_in[32] = { 0 };
printf("input: ");
gets_s(buf_in, 32);
for (int i = 0; i < 32; i++)
printf("%02x ", buf_in[i]);
getchar();
}
我輸入的<alt-254>
人物,但結果是74 00 00 ...
,不fe 00 00 ...
。
這是我的本地環境:chcp 936
。
而且我在一些不同的地方的環境測試(ANSI代碼頁936):
1. OEM代碼頁936結果:74 00 00 ...
2. OEM代碼頁65001結果:00 00 00 ...
(怪異)
3. OEM代碼第1250頁結果:3f 00 00 ...
4. OEM代碼頁437結果:5f 00 00 ...
怎麼樣unsigned char而不是char。這是一篇文章。 http://stackoverflow.com/questions/4337217/difference-between-signed-unsigned-char – user2443447
@ user2443447不,它不起作用 – dcnh35
嘗試幾乎所有的輸入法;從[如何在C++中使用Unicode?](http://stackoverflow.com/q/3010739/3439404)線程中最接近'std :: wcin'或'wscanf' ... – JosefZ