如何在我的终端上隐藏我的输入?

How to hide my input on my terminal?

我正在 Ubuntu 使用 C++

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

char *MESSAGE=getpass(""); 

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

简而言之,我希望消息在我输入消息时 可见,但很快就会在我的终端上变为 不可见当他进入时。

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

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

如果你能先打印名字,然后再读取输入的信息,我想你的问题可能就解决了。你试过了吗?

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

如果您现在正在使用 Windows 控制台,那么 Windows 控制台功能可以让您擦除屏幕的特定部分,前提是您知道自己正在使用符合终端仿真器的标准对于一个标准(VT100,xterm,...)你可以输出特殊的控制序列来做同样的事情。

唯一可移植的方法是使用像 curses 这样的屏幕管理库,它会为您完成底层工作。