【发布时间】:2015-08-16 11:19:59
【问题描述】:
我想读取用户的输入。用户输入序列:: 后,输入的其余部分应为星号。
例如:假设用户输入:Alex::vn800。在屏幕上,输出应该是:Alex::*****。
我有一个函数可以读取用户输入并在屏幕上显示*,但我没有设法在读取行的中间使用它。
我尝试操作函数getchar() 和scanf() 在检测到:: 序列后停止读取行,然后调用该函数但没有任何效果。
我能做什么?
更新:嘿!感谢您的回答。 我通过使用库 conio.h 勉强解决了这个问题 - 就像在任何其他简单的获取密码代码中一样,只是我根据我想要屏幕显示的内容对它进行了分解,而不仅仅是 '*' 用于任何情况。
【问题讨论】:
-
哪个操作系统?你能用
getch()吗? -
Curses 库浮现在脑海中。请参阅en.wikipedia.org/wiki/Curses_%28programming_library%29 或 ncurses
-
输入是否总是来自终端设备?
-
这不是完全重复的。但正如
man getpass中所述,您必须操作终端设置:首先,一次读取输入一个字符,然后禁用回显。所有这些都假设 Unix;没有可移植的方式,您也没有指定平台。 -
如果包含代码,特别是读取用户输入并在屏幕上显示
*s 的函数,您将获得更好的响应。