【问题标题】:Windows Cmd: cannot get the input character properlyWindows Cmd:无法正确获取输入字符
【发布时间】:2017-04-04 15:48:39
【问题描述】:

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

#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();
}

我输入的字符是&lt;alt-254&gt;,结果是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 ...

【问题讨论】:

标签: c windows cmd codepages


【解决方案1】:

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

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

./prog.exe

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

它适用于其他角色吗?

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-06-08
  • 2014-06-22
  • 2014-07-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-27
  • 2021-05-26
  • 2021-10-29
相关资源
最近更新 更多