c语言中,输入密码被*覆盖
时间: 2024-03-07 17:50:55 浏览: 71
在C语言中,如果想要输入密码时显示星号而不是明文,可以使用标准库中的`getch()`函数,该函数不会将输入的字符回显到屏幕上,可以有效地保护输入的密码。
以下是一个简单的示例代码,可以实现输入密码时显示星号:
```c
#include <stdio.h>
#include <conio.h> //需要用到getch()函数
int main() {
char password[20];
int i = 0;
char ch;
printf("请输入密码:");
while ((ch = getch()) != '\r') { //当输入回车时结束
if (ch == '\b') { //当输入退格时,删除前一个字符
if (i > 0) {
i--;
printf("\b \b"); //将之前的字符用空格覆盖,并将光标移回原来的位置
}
} else {
password[i++] = ch;
printf("*");
}
}
password[i] = '\0'; //将字符串最后一个字符设置为'\0',表示字符串结束
printf("\n输入的密码是:%s\n", password);
return 0;
}
```
需要注意的是,使用该方法只是简单地避免了密码明文显示,但并不能保证密码的绝对安全性,如遭受恶意攻击仍可能被破解。在实际应用中,应该选择更加安全的密码保护方案。
阅读全文