1.<conio.h>中有一个_getch()函数,当使用它的时候不会回显字符。
2.代码如下,'\r' 表示回车符;'\b' 表示退格符,当按下 “backspace” 时就是输入了 ‘\b’ 。
退格的意思是光标往前一格,而原来位置显示的字符不变,所以判断若输入非退格符则显示 * 并且将ch读入到password中;若为退格符,则需先显示 '\b' 使得光标往前一格,再显示空格符覆盖掉原来的 * ,最后再显示 '\b’使光标回退,达到视觉上的删除效果。
char ch ;
int index = 0 ;
char password[31] ;
while((ch = _getch()) != '\r'){
if(ch != '\b'){
printf("*") ;
password[index++] = ch ;
}
else{
printf("\b \b") ;
index-- ;
}
}
password[index] = '\0' ;