Windows Cmd:无法正确获取输入字符

时间:2016-11-21 09:38:25

标签: c windows cmd codepages

我无法正确获取输入字符值。这是我的代码:

#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 ...

1 个答案:

答案 0 :(得分:0)

我认为Windows控制台不支持ALT代码。请看这里: Alt Codes in Batch

您可以尝试将ALT代码(或任何其他数据...)放入文件中,然后将输入重定向到您的程序:

./ prog.exe&lt; input.txt中

为了确保你在文件中输入正确的值我建议使用十六进制编辑器(如XVI32)

是否适用于其他角色?