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

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);
}

不能用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;}}
这个函数还有三次有效输入密码保护功能。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-02-06
#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;
}
第2个回答  2010-06-22
程序改为
#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);
}本回答被网友采纳
第3个回答  2010-06-22
代码中响应键盘输入

不能使用scanf gets()等函数 这些是接受屏幕输入。。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网