在Windows中将用户输入屏蔽为星号
Masking the user input as asterisks in Windows?
我需要创建一个简单的密码程序,该程序要求用户输入密码,当用户输入时,它会将字符显示为星号。
每个教程都使用getch()
(在conio.h
中(。但我不想用它。有什么简单的替代方法吗?
我正在使用Windows 10。
p.S:请不要混淆这是这个问题的重复:conio.h的getch((在iostream.h中的替代函数?
因为这个问题要求保持屏幕输出,而我需要将输入屏蔽为星号。
我们在这里使用非标准功能。所以,无论你要做什么,它都是不可移植的。
本机控制台的方式将是ReadConsoleInput()
,如这里所解释的。在您的情况下,您将首先通过清除控制台模式标志ENABLE_LINE_INPUT
和ENABLE_ECHO_INPUT
来禁用回波和线路输入模式。然后,您将通过显示"*"来对关键事件作出反应。最后不要忘记恢复初始控制台模式。
一个快捷方式是只保存并更改控制台模式(如上面的代码所示(,然后循环cin.get()
,然后回显cout<<'*';
和cout.flush();
,以确保输出不会在缓冲区中等待,从而给用户带来不适。
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 检查输入是否不是整数或数字
- 正在尝试了解输入验证循环
- 读取文件并输入到矢量中
- C++如何通过用户输入删除列表元素
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 如何取消对nullptr的屏蔽,返回正确的对象
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- 用户定义函数中的指针和输入
- 如何在C++中检查2D数组中负值的输入验证
- 如何只允许用户输入正整数
- 在Windows中将用户输入屏蔽为星号
- 密码屏蔽(输入显示为********)
- c++密码存储.txt文件+屏蔽输入