函數(shù)名: getch
創(chuàng)新互聯(lián)建站主營平城網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),平城h5微信平臺小程序開發(fā)搭建,平城網(wǎng)站營銷推廣歡迎平城等地區(qū)企業(yè)咨詢
功? 能: 從控制臺無回顯地取一個字符
用? 法: 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';??//最后添加字符串結(jié)尾
putchar('\n');
puts(p);
return?0;?
}
#includeconio.h //這個頭文件不是標(biāo)準(zhǔn)庫函數(shù)的,一般編譯器是有的,但是 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中g(shù)etch可以做到不回顯,但是用法比windos中復(fù)雜一點點,以下是簡單實現(xiàn),密碼設(shè)為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;
}