首页 > 后端开发 > C++ > 如何从标准输入读取密码而不回显密码?

如何从标准输入读取密码而不回显密码?

Susan Sarandon
发布: 2024-12-22 16:24:10
原创
217 人浏览过

How Can I Read Passwords from Standard Input Without Echoing Them?

从 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板