C语言<stdilb.h>要求输入密码时显示是*号
时间: 2024-10-20 16:05:35 浏览: 23
在C语言中,当你需要从用户输入获取密码并希望隐藏其实际字符时,可以使用`getch()`函数配合循环来实现。`<conio.h>`库通常包含了这个函数,但现代C标准库(如`stdio.h`)已经不再推荐使用`conio.h`,而是建议使用更通用的`ncurses`库或者`termios`功能。
下面是一个简单的示例,演示如何在`stdin`中输入密码并只显示星号(*):
```c
#include <stdio.h>
#include <string.h>
int main() {
char password[10]; // 假设最大密码长度为9位加一个终止符
printf("请输入密码: ");
// 使用getch()函数按字符读取,每次循环输入一个字符,如果是回车键则结束输入
for (int i = 0; i < strlen(password);) {
int ch = getchar();
if (ch == '\n') break; // 如果遇到换行,跳出循环
else {
password[i] = '*'; // 显示星号
i++;
}
}
password[i] = '\0'; // 确保字符串以空字符结尾
// 打印处理后的密码
printf("密码已被隐藏: %s\n", password);
return 0;
}
```
注意:`getch()`不是一个标准C函数,在某些环境中可能不可用。若要在其他环境下使用,你可能需要查找特定平台下的相应替代方案。
阅读全文