我无法正确获取输入字符值。这是我的代码:
#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 ...
答案 0 :(得分:0)
我认为Windows控制台不支持ALT代码。请看这里: Alt Codes in Batch
您可以尝试将ALT代码(或任何其他数据...)放入文件中,然后将输入重定向到您的程序:
./ prog.exe&lt; input.txt中
为了确保你在文件中输入正确的值我建议使用十六进制编辑器(如XVI32)
是否适用于其他角色?