我正在用C++编写一个程序,我应该从用户那里接收一个字符串而不在屏幕上显示它(例如:apassword).我尝试使用cin和gets接受字符串.但两者都会回显用户在控制台中输入的字符.
那么在C++中有没有任何函数或任何其他方法呢?
如何避免通过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)
可能用于在标准输入上切换回声。
| 归档时间: |
|
| 查看次数: |
376 次 |
| 最近记录: |