可能的重复:
从 std::cin 读取密码 https://stackoverflow.com/questions/1413445/read-a-password-from-stdcin
我正在尝试制作一个简单的密码程序,以便熟悉 C++,但我遇到了一些问题。在此代码中,我要求用户输入他们选择的密码,然后他们输入它。我想要编码做的是隐藏输入(not将其替换为 *s),但仍然显示光标以及输入密码之前和之后的文本,如下所示:
Please enter password: [don't show input]
Please re-enter password: [don't show input]
我怎样才能做到这一点?我使用的是 Linux,所以我无法使用任何 Windows 库(windows.h 等)。
您不能直接使用 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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)