十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
函数名: getch
创新互联建站主营平城网站建设的网络公司,主营网站建设方案,重庆APP软件开发,平城h5微信平台小程序开发搭建,平城网站营销推广欢迎平城等地区企业咨询
功 能: 从控制台无回显地取一个字符
用 法: int getch(void);
#include conio.h
#include stdio.h
int main(void)
{
char p[50];
int i=-1;
do{
++i;
p[i]=getch();
putchar('*');
}while( p[i]!=13); //13为回车ascii
p[i+1]='\0'; //最后添加字符串结尾
putchar('\n');
puts(p);
return 0;
}
#includeconio.h //这个头文件不是标准库函数的,一般编译器是有的,但是 unix和linux编译器是没有的
#define PASSWORD "123456"
int password()
{
char
p[20],i=0;
system("cls");
printf("请输入密码 = ");
while(p[i]=getch())
{
if(p[i]==13)
break;
if(p[i]!='\b')
{
printf("*");
i++;
}
else
{
printf("\b
\b");
i--;
}
}
p[i]='\0';
if(strcmp(p,PASSWORD)==0)
{
printf("验证通过");
press();
return 1;
}
else
{
printf("密码错误");
press();
return 0;
}
}
在linux中getch可以做到不回显,但是用法比windos中复杂一点点,以下是简单实现,密码设为6位,可以按退格修改,就只写了这些功能,望采纳
#includestdio.h
#includecurses.h
int main()
{
int i,j=0;
char ch;
initscr();
cbreak();
noecho();
curs_set(0);
for(i=0;i6+2*j;i++)
{
ch=getch();
addstr("*");
if(i)
{
if(ch==127)
{
j++;
move(0,i+1-2*j);
clrtoeol();
}
}
}
getch();
endwin();
return 0;
}