本节涉及到的部分知识在后续章节才会讲到,如果您是初学者,请阅读完入门教程再来回顾本节。
一个安全的程序在用户输入密码时不应该显示密码本身,而应该回显星号或者点号,例如······
或
******
,这在网页、PC软件、ATM机、POS机上经常看到。但是C语言没有提供类似的功能,控制台上只能原样显示用户输入的字符。我们完全可以模拟密码输入的效果,请先看下面的代码:
#include #include #include #define PWDLEN 20void getpwd(char *pwd, int pwdlen);int main(){
char pwd[PWDLEN+1]; printf("Input password: "); getpwd(pwd, PWDLEN); printf("The password is: %s\n", pwd); return 0;}/*** 获取用户输入的密码* @param pwd char* 保存密码的内存的首地址* @param pwdlen int 密码的最大长度**/void getpwd(char *pwd, int pwdlen){
char ch = 0; int i = 0; while(i ch = getch(); if(ch == '\r'){ //回车结束输入 printf("\n"); break; }