我正在编写一些用于获取和存储用户密码的函数。它的工作正常但是有没有办法用星号替换在提示符下键入的内容?
这在窗口化应用程序中是相当标准的行为我已经很好地了解了C库,但是所有fgets / getc类型的函数似乎都没有对此提供任何控制。
编辑:尝试使用ANSI C在OS X上运行。下面的答案指出了我正确的方向 - 我的搜索没有找到一些链接......
答案 0 :(得分:4)
假设POSIX:
struct termios t;
tcgetattr(STDIN_FILENO, &t);
t.c_lflag &= ~ECHO;
tcsetattr(STDIN_FILENO, TCSAFLUSH, &t);
然后不会回显用户输入。如果要撤消此标记,请设置ECHO
标记。
答案 1 :(得分:3)
答案 2 :(得分:1)
您没有说明哪个平台或编译器,但请参阅ANSI C No-echo keyboard input。也许是getch()或kbhit()或getpass(),具体取决于环境。