在c语言中输入密码的时候。,输入退格键的时候也会显示“*”,改怎么改?
我的程序如下:chara[20];inti=0;while((a[i]=getch())!='\r'){printf("*");i++;}a[i]='\0';在运行的时候...
我的程序如下:
char a[20];int i=0;
while((a[i]=getch())!='\r')
{
printf("*");
i++;
}
a[i]='\0';
在运行的时候输入退格键想删除的时候也会显示出“*”,而不是想要的删除,这个应该怎么实现?高手帮帮忙吧、 展开
char a[20];int i=0;
while((a[i]=getch())!='\r')
{
printf("*");
i++;
}
a[i]='\0';
在运行的时候输入退格键想删除的时候也会显示出“*”,而不是想要的删除,这个应该怎么实现?高手帮帮忙吧、 展开
3个回答
展开全部
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';
}
{
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'
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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++;
}
}
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++;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询