代码之家  ›  专栏  ›  技术社区  ›  user319940

在C++中输入时自动更改字符?

c++
  •  1
  • user319940  · 技术社区  · 14 年前

    我很难解决这个问题。基本上,我的程序有一个标准输入,我想修改这个,所以如果用户输入一个空格,它会自动替换为a/当他们打字时。我不知道我会怎么做,也不知道是否有可能,所以我很感激任何帮助。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Dustin    14 年前

    您需要关闭对输入的字符的回送,然后在验证后自己回送它们,必要时替换字符。对于不同的操作系统(如Linux和Windows),有不同的方法可以做到这一点,更不幸的是,这可能意味着仅仅为了这个简单的函数就可以控制整个屏幕,因为需要正确处理退格键/删除键(即使是在多行操作系统中,如果需要使用必要的)。简言之,在让自己对用户期望的公共功能负责的同时,您正在从用户手中夺走控制权,这使得事情变得相当困难,因为您不知道某些终端的行为,更不用说与区域设置有关的问题。根据您的目的和特定的用例,在接收到输入后自己替换字符或发出错误消息更容易。

    编辑: PDCurses 是跨平台的,所以如果您仍然感兴趣的话,可以尝试一下。它比为特定平台编码更容易。

        2
  •  2
  •   Jonathan M Davis    14 年前

    我相信如果你想在控制台上那样操作文本,你需要一个库,比如ncurses。