在c语言中输入密码的时候。,输入退格键的时候也会显示“*”,改怎么改?
发布网友
发布时间:2022-05-27 19:26
我来回答
共3个回答
热心网友
时间:2023-11-22 23:50
其实你的出发点就是不对的,首先你的判断的意思是输入的不是回车时就显示*,不仅如此,你的赋值语句是在判断前,即使不符合判断也已经为数组赋值了追问那我应该怎么写呢?高手指教一下、、
热心网友
时间:2023-11-22 23:51
main()
{
char a[20];int i=0;
while((a[i]=getch())!='\r')
{
if(a[i]=='\b')
{
printf("\b \b");
i--;
}
else
{
printf("*");
i++;
}
}
a[i]='\0';
}追问你的代码确实能够实现删除屏幕上的字符“*”,不过我输出数组的数据的时候却是乱码,,怎么回事啊》》
追答不要忘了最后的那个a[i]='\0';
同时用输出字符串的格式。printf("%s",a);
如果你是用循环,就要判断a[i]!='\0'
热心网友
时间:2023-11-22 23:51
#include<conio.h>
while((password[j] = getch()) != '\r')
{
if(password[j] == '\b' && strlen(password) == 1)
{
password[j] = '\0';
}
else if(password[j] == '\b')
{
putch('\b');
putch(' ');
putch('\b');
password[j] = '\0';
j--;
}
else
{
putch('*');
j++;
}
}