我需要创建一个简单的密码程序,该程序要求用户输入密码,当用户输入时,它将字符显示为星号。
每个教程都使用getch()
(in conio.h
)。但我不想使用它。有没有什么简单的替代方法可以做到这一点?
我使用的是 Windows 10。
P.S:请不要将此问题与此问题重复:iostream.h 中 conio.h 的 getch() 的替代函数?
因为这个问题要求保留屏幕输出,而我需要将输入屏蔽为星号。
我们这里是非标准功能。所以,无论你做什么,它都不是便携式的。
本机控制台方式是ReadConsoleInput()正如所解释的here。在您的情况下,您首先需要通过清除控制台模式标志来禁用回显和行输入模式ENABLE_LINE_INPUT
and ENABLE_ECHO_INPUT
。然后您可以通过显示“*”来对关键事件做出反应。最后不要忘记恢复初始控制台模式。
快捷方式是保存并更改控制台模式(如上面的代码所示),然后循环cin.get()
并回响cout<<'*';
其次是cout.flush();
确保输出不会在缓冲区中等待,从而给用户带来不适。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)