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

3

我正在使用C++在Ubuntu上。

Image

如何隐藏终端中显示的红框框(用户输入)?

char *MESSAGE=getpass(""); 

上面的代码会在每个输入后留下一个空行,我不想在用户输入消息时隐藏消息。
简而言之,我希望在键入消息时消息是可见的,但一旦输入完成就在我的终端上变为不可见。
编辑:有人能告诉我这个问题如何与那个主题重复吗?
3个回答

2

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


1
我知道有一种清除终端的方法,但那不会清除整个屏幕,只会留下最新的消息吗? - Lozy
1
清除终端意味着上面写的所有内容都会消失。由于您希望聊天内容可见,因此可以在每次输入后打印整个聊天记录。这假定您正在某个地方存储聊天内容。 - Shiro

0
如果你可以先打印出名称,然后再读取输入的消息,我认为你的问题可能会得到解决。你试过这样做了吗?

0

你不能仅使用标准C库中的函数,甚至包括Posix,以可靠和可移植的方式完成此操作。

如果你知道你正在使用Windows控制台,则Windows控制台函数可以允许你擦除屏幕的特定部分,如果你知道你正在使用符合某个标准(VT100、xterm等)的终端仿真器,则可以输出特殊的控制序列来完成相同的操作。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接