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;
}
能退格 但是* 不会消失 有什么方法可以按退格后让一个* 消失吗
展开
 我来答
无法无天
2015-08-07 · 知道合伙人软件行家
无法无天
知道合伙人软件行家
采纳数:658 获赞数:1756
网络工程师

向TA提问 私信TA
展开全部
补一个空格 然后再退格
更多追问追答
追问
补一个空格 然后再退格 不就相当于没有退格吗
追答
我发现楼主你的理解能力有待提高,我已经说得很明显了。
你说能退格,但*不消失,就说明退格后退的只是光标,那么你先退格,此时你打一个空格就会把*覆盖掉,光标又前进了1步,那么再退格回到消失*的位置,请问,这时你的*还在吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
20分钟假腿
2015-08-07 · TA获得超过118个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:117万
展开全部
putchar('\b'); //光标左移到*之前

putchar(' '); // 用空格覆盖*

putchar('\b'); // 光标左移到空格之前

你也可以配合我上面提到的putchar用法以及sleep函数,使得每输入一个字符,先显示个零点几秒再变成*
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式