如何隐藏用户输入与C ++ CIN? [重复](How do I hide user input

2019-07-04 11:10发布

可能重复:
阅读从STD密码:: CIN

我试图做一个简单的密码的程序,所以我可以熟悉C ++,但我有一点问题的。 在这段代码中,我要求他们选择用户输入密码,然后他们进入。 我想代码做的是隐藏输入( 带* S取代它),但仍显示出光标,和上面的文字,之前,并输入密码后,像这样的:

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

我怎样才能做到这一点? 我使用Linux,所以我将不能使用任何Windows库(WINDOWS.H等)。

Answer 1:

你不能做到这一点,直接使用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);
}


Answer 2:

你会想打电话tcsetattr和修改ECHO标志。



文章来源: How do I hide user input with cin in C++? [duplicate]