密码不显示c语言
‘壹’ c语言中,用什么函数可以使输入的字符不显示在屏幕上
getpass()函数可以使输入的字符不现实在屏幕上。
#include
<conio.h>
int
main(void)
{
char
*password;
password
=
getpass("Input
a
password:");
cprintf("The
password
is:
%s\r\n",
password);
return
0;
}
你试一试这个
‘贰’ C语言如何实现输入密码以星号显示
C语言中可采用getch()函数来实现输入密码字符时,不显示字符到终端上,这时,只需要显示出一个相应的*就可以达到效果了。参考代码及运行效果如下图:
‘叁’ C语言 如何不回显密码
#include <unistd.h>
#include<stdio.h>
#include <termios.h>
char Getch()
{
char ch;
struct termios oldt, newt;
tcgetattr(STDIN_FILENO, &oldt);
newt = oldt;
newt.c_lflag &= ~(ECHO|ICANON);
tcsetattr(STDIN_FILENO, TCSANOW, &newt);
ch = getchar();
tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
return ch;
}
void getpasswd(char *p)
{
int i=0;
printf("password:");
while((*(p+i)=Getch())!='\n')
{
putchar('*');
i++;
}
*(p+i) = '\0';
}
int main()
{
char a[10];
getpasswd(a);
printf("%s",a);
}
‘肆’ 关于C语言中的密码问题
有办法,但有个地方你要改,就是这里:gets(Password);
你记得C语言里本来有三个字符输入函数
getch(), getche(), getchar()
三个函数各有不同,其中getchar()会显示,要回车, getch()不显示,不回车
getche()这个。。。恕我直言,忘了。。。不过我们用不到它
用到的就是getch()这个函数的特性,只管输入,它不会显示在屏幕上你输入的内容。那它不会显示,我们~~给它加一个显示的好咯,printf("*");
但别忘了,getch()是字符输入,不是字符串,估计得用循环咯
程序首部加上char ch;
然后你的gets(Password);删掉换成下边的:
while(1)
{
if((ch = getch()) == 27)
{
break;
}
printf("*");
//注意下面的内容,想办法把ch这个字符填加到Password这个字符串里
//方法嘛,我想你可以想出来的吧,这里我不写了,有问题HI我吧
}
注意上边是个死循环,唯一的出口就是那个break,27是ESC键的ASCII码,这里我就设置了如果输出中按了ESC键,则跳出循环,停止输入,你可以换成回车或其它键的ASCII码,自由定。
‘伍’ C语言不回显密码输入界面
#include<stdio.h>
intmain(void)
{
charc1='