C语言怎样加密码变成星号

voidmain(){intpw,f,m=0,m1=0;charuser[10];/*定义用户名字符组*/printf("************************... void main()

{
int pw,f,m=0,m1=0;
char user[10]; /*定义用户名字符组*/
printf("*********************************用户登录************************************\n\n");
do{
printf("请输入用户名:");
scanf("%s",user); /*输入用户名*/
f=strcmp(user,"wangsimeng"); /*比较输入的用户名是否是dindqin*/
/*将返回值给f变量*/
if(f==0)
{
m1=1;
do{
printf("请输入密码:");
scanf("%d",&pw); /*输入密码*/
if(pw==19898877) /*比较密码是否为19898877*/
{ printf("欢迎使用本程序!%as\n\n",user);
m=1;
menu();
}
else
printf("密码错误!\n");

}while(m==0);
}
else printf("用户名错误!\n");

}while(m1==0);
}
展开
 我来答
onlytigercan
2010-06-24
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
不能用scanf函数的~~~因为scanf函数输入的时候会显示输入信息的~~
用getch()函数
一下是我之前写的程序~~
你参考一下就懂的了
main()
{char a[6];
int i,j,k,z,x,y,g=0;
/*密码保护系统*/
char b[]={'w','h','0','9','1','4'};
gotoxy(11,2);
printf("*****Welcome to Student Achievement Management System*****\n");
gotoxy(28,4);
printf(" Please Input Password ");
gotoxy(50,22);
printf("Editor: OnlyTigerCan");
read1:
gotoxy(36,6+g*4);
for(i=0;i<6;i++)
{ for(i=0;i<6;i++)
{ a[i]=getch();
printf("*");}
k=0;
for(i=0;i<6;i++)
{if(strcmp(a[i],b[i])==0) k++;}
if(k!=6)
{g++;
if(g<3){gotoxy(23,4+g*4);
printf("Wrong Password! Please input again.");
goto read1;}
else printf("\n\n Too Many Times of Entering Wrong Password !");
printf("\n Press Any Key to Exit");
getch();exit(0);}
else
break;}}
这个函数还有三次有效输入密码保护功能。
L语言之父
推荐于2016-02-06 · TA获得超过3622个赞
知道小有建树答主
回答量:811
采纳率:0%
帮助的人:91.1万
展开全部
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

int chcode() {
char pw[50],ch;
char *syspw = "abc"; // 原始密码
int i,m = 0;
printf("请输入密码:");
while(m < 3) {
i = 0;
while((ch = _getch()) != '\r') {
if(ch == '\b' && i > 0) {
printf("\b \b");
--i;
}
else if(ch != '\b') {
pw[i++] = ch;
printf("*");
}
}
pw[i] = '\0';
printf("\n");
if(strcmp(pw,syspw) != 0) {
printf("密码错误,请重新输入!\n");
m++;
}
else {
printf("密码正确!\n");
system("pause");
return 1;
}
}
printf("连续3次输入错误,退出!\n");
system("pause");
return 0;
}

int main() {
int login = chcode();
if(login) printf("登录成功!\n");
else printf("登录失败!\n");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
犁侠00h
2010-06-22 · 超过34用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:94.1万
展开全部
程序改为
#include "conio.h"//增加这个头文件
void main()

{
int pw=0,i,f,m=0,m1=0;
char str[1000];
char user[10]; /*定义用户名字符组*/
printf("*********************************用户登录************************************\n\n");
do{
printf("请输入用户名:");
scanf("%s",user); /*输入用户名*/
f=strcmp(user,"wangsimeng"); /*比较输入的用户名是否是dindqin*/
/*将返回值给f变量*/
if(f==0)
{
m1=1;
do{
printf("请输入密码:");
for ( i=0; i<80; i++)
{
str[i] = getch(); /*逐次赋值,但不回显*/
if (str[i] == '\x0d')/*回车则终止循环*/
{
str[i]='\0';
break;
}
printf("*"); /*以星号代替字符个数*/
}
i=0;
while(str[i]!='\0')
{
pw=pw*10+str[i]-48;
i++;
}
if(pw==19898877) /*比较密码是否为19898877*/
{ printf("欢迎使用本程序!%as\n\n",user);
m=1;
menu();
}
else
printf("密码错误!\n");

}while(m==0);
}
else printf("用户名错误!\n");

}while(m1==0);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vallay_star
2010-06-22 · TA获得超过148个赞
知道小有建树答主
回答量:139
采纳率:0%
帮助的人:0
展开全部
代码中响应键盘输入

不能使用scanf gets()等函数 这些是接受屏幕输入。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式