c语言,怎么把输入的数字像密码一样隐藏输出星号啊

 我来答
物理公司的
2015-11-09 · TA获得超过5695个赞
知道大有可为答主
回答量:6105
采纳率:86%
帮助的人:1331万
展开全部
#include <stdio.h>
#define MAX_STR_LEN  32  
   
char passwd[MAX_STR_LEN] = {0};  
   
char *GetPasswd(void)  
{  
    char c;  
    int i = 0;  
    int len = MAX_STR_LEN-1;  
       
    while ((c=getch()) != '\r')  
    {  
        passwd[i] = c;  
        putchar('*');  
        i++;  
        if (i >= len)  
        {  
            break;  
        }  
    }  
       
    return passwd;  
}  
   
int main(void)  
{  
    char *dispstr = NULL;  
   
    dispstr = GetPasswd();  
    printf("\nthe password is : %s\n", dispstr);  
   
    return 0;  
}
百度网友2018359
2015-11-09 · TA获得超过3494个赞
知道大有可为答主
回答量:3486
采纳率:73%
帮助的人:1404万
展开全部
试一下
int i,a;
for(i=0;i<6;i++)
{
    a=getch();
    printf("*");
}
更多追问追答
追问
我那个数字是个数组
追答
改一下不就好了么,关键是要用getch( )函数
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
太阳公太阳婆
2018-01-04
知道答主
回答量:1
采纳率:0%
帮助的人:903
展开全部
//输入用户名
int login()
{
char tmpname[20],tmppwd[20];
char c;
int i=0,j;
while(i<3)
{
system("cls");
printf("请输入用户名:\n");
scanf("%s",tmpname);
printf("请输入密码:\n");
j=0;
while(1)//循环读单个字符
{
c=getch();
if(c=='\r')
{
tmppwd[j]=0;
break;
}
printf("*");
tmppwd[j]=c;
j++;
}
if(strcmp(tmpname,name)==0 && strcmp(tmppwd,pwd)==0)
return 1;
else
{
i++;
printf("用户名或者密码错误!还有%d次机会。\n",3-i);
system("pause");
if(i==3)
return 0;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e9614c9
2018-07-18
知道答主
回答量:1
采纳率:0%
帮助的人:834
展开全部
这里还有输入退格键可以删除星号的版本,感兴趣的可以去看看
https://blog.csdn.net/y_universe/article/details/77193645
https://blog.csdn.net/czg13548930186/article/details/72847722
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式