如何让输入密码显示*号
大家好,今天弄一个c语言写的登录界面,要求输入密码时,显示*号,我试过用getch(),但提示错误,
加上#include后双显示没有这个头文件,在网上找了些方法也不奏效。
请教各位大侠,给小弟一段完整的代码,谢谢!
------解决思路----------------------
#define PASSWDLEN 10
char ch;
char password[PASSWDLEN] = {0};
int index = 0;
while(scanf("%c", &ch) != EOF)
{
password[index++] = ch;
printf("%c", '*');
}
//写了一个大概思路,password可供后续比较实用。
------解决思路----------------------
这个是我以前写的。但有个小缺陷:
换行后,不能回退:(
*/
int scan_password(char *str_buf, unsigned int size)
{
int c;
int i = 0;
while ((c=getch()) != '\r')
{
if (c == '\b') {// backspace
if (i > 0) {
int r;
str_buf[--i] = '\0';
r = putchar(c);
r = putchar(' ');
r = putchar(c);
}
}
else {
if (i
str_buf[i++] = c;
putchar('*');
}
}
}
str_buf[i] = '\0';
putchar('\r');
putchar('\n');
return i;
}
------解决思路----------------------
#include
#include
#include
void setpassword()
{
int i,n=0;
char keyword1[20]={'\0'};
char keyword2[20]={'\0'};
while(1)
{
printf("请输入10位数的密码!:\n");
for (i=0; i<10; i++)
{
keyword1[i]=getch();
if(keyword1[i]=='\b') //如果输入了退格键,清除当前数据
{
i-=2;
printf("\b \b");
}
else
{
printf("*");
}