C语言隐藏密码输入

这里主要用到的是头文件 #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;
}

运行结果截图

在这里插入图片描述

总结:

可以运用一些判断条件实现输入的过程可以删除前面输入的部分,
这个代码不足的地方是没有实现:输入密码以"星号"显示,删除的时候 "星号"也会被删除。

猜你喜欢

转载自blog.csdn.net/qxjswl/article/details/123349449