2016-06-23 46 views
3

我在Ubuntu用C++如何在我的终端上隐藏我的输入?

Image

如何隐藏的红色方块(用户输入),如下图所示上面我的终端上?

char *MESSAGE=getpass(""); 

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

总之,我希望消息是可见因为我打字的消息,但只要他进入我的终端上那张无形

编辑:有人可以请赐教我如何将这个问题重复到该线程?

回答

0

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

+1

我知道有一种清除终端的方法,但不会清除我的整个屏幕只留下最新的消息? – Lozy

+0

清除终端意味着写入的所有内容都将消失。既然您希望聊天可见,您可以在每次输入后打印整个聊天。这假定你在某处存储聊天内容。 – Shiro

0

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

0

只能使用标准C库中的函数,即使使用Posix函数,也无法以可靠和便携的方式执行此操作。

如果您现在正在使用Windows控制台,并且Windows控制台的功能可能允许您清除屏幕的特定部分,如果您知道使用符合一个标准的终端模拟器(VT100,xterm,。 ..)你可以输出特殊的控制序列来做同样的事情。

唯一便携的方式是使用像curses这样的屏幕管理库,它可以为你做低级别的工作。