c语言 我写了一个输入密码 显示*的函数 但是按退格键遇到点问题
//密码显示星号char*getpassword(){charc;inti=0;charpassword[20];while((c=getch())!='\r'){if(...
//密码显示星号
char *getpassword(){
char c;
int i=0;
char password[20];
while((c=getch())!='\r'){
if(c=='\b'){
password[i-1]=NULL;
putchar('\b');
i--;
}else{
password[i]=c;
putchar('*');
i++;
}
if(i>=20)
break;
}
password[i]='\0';
return password;
}
能退格 但是* 不会消失 有什么方法可以按退格后让一个* 消失吗 展开
char *getpassword(){
char c;
int i=0;
char password[20];
while((c=getch())!='\r'){
if(c=='\b'){
password[i-1]=NULL;
putchar('\b');
i--;
}else{
password[i]=c;
putchar('*');
i++;
}
if(i>=20)
break;
}
password[i]='\0';
return password;
}
能退格 但是* 不会消失 有什么方法可以按退格后让一个* 消失吗 展开
2个回答
展开全部
补一个空格 然后再退格
更多追问追答
追问
补一个空格 然后再退格 不就相当于没有退格吗
追答
我发现楼主你的理解能力有待提高,我已经说得很明显了。
你说能退格,但*不消失,就说明退格后退的只是光标,那么你先退格,此时你打一个空格就会把*覆盖掉,光标又前进了1步,那么再退格回到消失*的位置,请问,这时你的*还在吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询