【问题标题】:How to hide my input on my terminal? [duplicate]如何在终端上隐藏我的输入? [复制]
【发布时间】:2016-06-23 16:09:55
【问题描述】:

我在 Ubuntu 上使用 C++

如何在我的终端上隐藏如上图所示的红色框(用户输入)?

char *MESSAGE=getpass(""); 

上面的代码会在每次输入后留下一个空行,我不希望在用户输入消息时隐藏消息。

简而言之,我希望消息在我输入消息时可见,但在他输入后立即在我的终端上不可见

编辑:有人可以告诉我这个问题是如何复制到那个线程的吗?

【问题讨论】:

    标签: c++ linux input io user-input


    【解决方案1】:

    您可以在发送消息后清除终端,然后重新打印整个聊天。

    【讨论】:

    • 我知道有一种方法可以清除终端,但不会清除我的整个屏幕,只留下最新消息吗?
    • 清除终端意味着上面写的一切都会消失。由于您希望聊天可见,您可以在每次输入后打印整个聊天。这假设您将聊天内容存储在某处。
    【解决方案2】:

    如果您可以先打印名称然后阅读输入消息,我认为您的问题可能会解决。你试过吗?

    【讨论】:

      【解决方案3】:

      您无法以可靠且可移植的方式仅使用标准 C 库中的函数来做到这一点,即使使用 Posix 库也不行。

      如果您现在使用的是 Windows 控制台,如果您知道您使用的是符合一种标准(VT100、xterm、.. .) 你可以输出特殊的控制序列来做同样的事情。

      唯一可移植的方法是使用像 curses 这样的屏幕管理库来为您完成低级工作。

      【讨论】:

        猜你喜欢
        • 2021-01-27
        • 2011-05-18
        • 1970-01-01
        • 1970-01-01
        • 2017-01-02
        • 2015-01-12
        • 2014-12-14
        • 1970-01-01
        相关资源
        最近更新 更多