从 std::cin 读取密码而不回显
从标准输入读取密码而不回显输入字符的需求经常出现。为此,必须禁用 std::cin 上的 echo。
Windows 和 UNIX 差异
禁用 echo 的方法取决于操作系统。在 Windows 中,使用 GetConsoleMode 和 SetConsoleMode 函数,而在类 UNIX 系统中,使用 tcgetattr 和 tcsetattr。
实现解决方案
提供的代码片段包括与操作系统无关的函数 SetStdinEcho,它允许切换 std::cin 的回显。还提供了示例用法,演示如何在不回显的情况下读取密码,然后在用户按 Enter 键时回显密码:
#include <iostream> #include <string> int main() { SetStdinEcho(false); std::string password; std::cin >> password; SetStdinEcho(true); std::cout << password << std::endl; return 0; }
此代码确保用户的密码在输入时保持私密性并在成功输入时显示.
以上是如何从标准输入读取密码而不回显密码?的详细内容。更多信息请关注PHP中文网其他相关文章!