这里主要用到的是头文件 #include <conio.h>下的getch()函数
getch()函数的主要功能是,读取一个输入的字符但是并不会在屏幕上显示出
代码
#include <stdio.h>
#include <string.h>
#include <conio.h>
void hiddenInput(){
char a[20];
int i;
printf("请输入密码:");
for(i=0;i<20;i++){
a[i]=getch();//getch()从控制台输入一各字符但是不显示
/*
当在第i个字符输入退格键时,会把第i-1个字符赋值为'\0',
并将i指向i-2 ,经过循环的i++后,i就指向了刚刚赋值为 '\0'的位置
*/
if(a[i]=='\b' && i>0){
a[--i]='\0';
i--;
}
//如果在最开始就按退格键,就让i=-1
if(a[i]=='\b' && i==0){
i=-1;
}
//如果输入的是回车,就退出输入循环
if(a[i]=='\r'){
break;
}
}
a[i]='\0';
printf("\n您输入的密码是:");
puts(a);
}
int main(){
hiddenInput();
return 0;
}
运行结果截图
总结:
可以运用一些判断条件实现输入的过程可以删除前面输入的部分,
这个代码不足的地方是没有实现:输入密码以"星号"显示,删除的时候 "星号"也会被删除。