您的位置:首页 > 运维架构 > Linux

linux c下输入密码不回显

2015-05-29 23:47 441 查看
今天做一个登录程序,需要屏蔽掉密码,于是自己就在网上找资料,找到了一种和linux终端下输入密码方式相同的方法,不显示在终端,具体代码实现如下。

#include<stdio.h>
#include<unistd.h>                //屏蔽密码的函数在这个头文件中,需要包含这个头文件
#include<string.h>
int main()
{
int i=3;
char username;
char password[6]={"123456"};        //定义一个初始密码
printf("请输入用户名");
scanf("%s",username);
while(i)                    //循环判断输入的密码和初始密码是否相等
{
char *pass=getpass("请输入密码:");    //调用getpass函数,这个函数接受到的字符不回显在终端
if(strcmp(pass,password)==0)
{
break;
}
else
{
i--;
printf("密码错误\n");
}
}
if(i==0)
printf("登陆失败");
else
printf("登陆成功");
return 0;
}


这个函数的原型为char *getpass(char* prompt),括号内可以输入一个字符串常量,函数的返回值为一个 char *型。还有其他的方法,但是还没实现,现在先用这个方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: