C++输入密码(字符)不回显

    xiaoxiao2023-10-13  169

    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' ;

     

    最新回复(0)