如何在C ++中隐藏用户input?

可能重复:
从std :: cin读取密码

我试图做一个简单的密码程序,所以我可以熟悉C ++,但我有一个问题。 在这段代码中,我要求用户input他们select的密码,然后input。 我想要做的就是隐藏input( 不能用* s代替),但是仍然显示光标,以及input密码之前和之后的文本,如下所示:

Please enter password: [don't show input] Please re-enter password: [don't show input] 

我怎样才能做到这一点? 我正在使用Linux,所以我将无法使用任何Windows库(Windows.h等)。

Solutions Collecting From Web of "如何在C ++中隐藏用户input?"

你不能直接使用cin来做到这一点。 你必须去“下”。 尝试调用这些函数:

 #include <termios.h> ... void HideStdinKeystrokes() { termios tty; tcgetattr(STDIN_FILENO, &tty); /* we want to disable echo */ tty.c_lflag &= ~ECHO; tcsetattr(STDIN_FILENO, TCSANOW, &tty); } void ShowStdinKeystrokes() { termios tty; tcgetattr(STDIN_FILENO, &tty); /* we want to reenable echo */ tty.c_lflag |= ECHO; tcsetattr(STDIN_FILENO, TCSANOW, &tty); } 

您将要调用tcsetattr并修改ECHO标志。