C++中未使用的字符串输入

Zoo*_*mIn 9 c++

我正在用C++编写一个程序,我应该从用户那里接收一个字符串而不在屏幕上显示它(例如:apassword).我尝试使用cingets接受字符串.但两者都会回显用户在控制台中输入的字符.

那么在C++中有没有任何函数或任何其他方法呢?

Fre*_*abe 5

如何避免通过cin显示在控制台上读取的数据在很大程度上取决于控制台;它当然依赖于操作系统。

在 Windows 上,您可以使用该SetConsoleMode函数启用/禁用任何文件句柄的回显,包括标准输入句柄。

就像是

void enableStdinEcho( bool b ) {
    HANDLE hStdin = ::GetStdHandle( STD_INPUT_HANDLE ); 
    DWORD mode = 0;
    ::GetConsoleMode( hStdin, &mode );
    if ( b ) {
        mode |= ENABLE_ECHO_INPUT;
    } else {
        mode &= ~ENABLE_ECHO_INPUT;
    }
    ::SetConsoleMode( hStdin, mode );
}
Run Code Online (Sandbox Code Playgroud)

可能用于在标准输入上切换回声。