linux回删密码,密码以*显示

#include <stdio.h>
#include <termios.h>
#include <unistd.h>


int my_getch()
{
struct termios oldt,newt;
int ch;
tcgetattr(STDIN_FILENO,&oldt);
newt = oldt;
newt.c_lflag &= ~(ICANON | ECHO);
tcsetattr(STDIN_FILENO, TCSANOW, &newt);
ch = getchar();
tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
return ch;
}


int getpasswd(char * passwd, int size)
{
int c;
int n = 0;
do
{
c = my_getch();
if(c != '\n' && c != '\r' && c != 127)
{
passwd[n] = c;
printf("*");
n++;
}
else if((c != '\n' | c != '\r') && c == 127)
{
if(n > 0)
{
n--;
printf("\b \b");//输出退格一个空格!!!
}
}
}while(c != '\n' && c != '\r' && n < (size - 1));
passwd[n] = '\0';
return 0;
}


int main()
{
char passWord[20];
printf("输入密码:\n");
getpasswd(passWord,20);
printf("\n");
printf("密码是:%s\n",passWord);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值