帮忙啦!
利用数组实现一个用户登录程序,先要求输入用户名(3次有效),接着输入密码(3次有效,要求用*回显)登录成功则输出欢迎语,否则告知出错并退出系统。 能不能只用stdio 和 string 两个函数
----------------解决方案--------------------------------------------------------
#ifndef _GETPASSWD_H
#define _GETPASSWD_H
#include <stdio.h>
#include <conio.h>
char passwd[32] = "";
char *getPasswd()
{
char c;
int i = 0;
while ((c=getch()) != '\r')
{
passwd[i++] = c;
putchar('*');
}
passwd[i] = '\0';
return passwd;
}
#endif
//*******************************上面是password.h*******************************************
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#include"password.h"
#define PASS "123"
void main()
{
int i,j=0,password=1;
char name1[10],name2[6]="zhang";
char *pw;
printf("please input your name:");
gets(name1);
while(strcmp(name1,name2)!=0||j++)
{
printf("input again:");
gets(name1);
if(j>=3)
{
printf("超过次数!");
exit(0);
}
}
if (strcmp(name1,name2)!=0)
printf("wrong!\n");
else
printf("hi,welcome!\n");
j=0;
do{
printf("input your password:");
pw=getPasswd();
fflush(stdin);
if(j>=3)
{
printf("超过次数!");
exit(0);
}
}while(strcmp(pw,PASS)!=0||j++);
if (strcmp(pw,PASS)!=0)
printf("\nwrong!\n");
else
printf("\nhello!\n");
}
[[it] 本帖最后由 sunkaidong 于 2008-4-20 16:25 编辑 [/it]]
----------------解决方案--------------------------------------------------------
昨天一个小丫头要的..不会是你吧?还是你同学?
----------------解决方案--------------------------------------------------------
回复 3# 的帖子
不是我 可能是我的同学吧 ----------------解决方案--------------------------------------------------------
回复 2# 的帖子
怎么这么多啊 好多东西都没见过啊 ----------------解决方案--------------------------------------------------------
你要回显而且还要限制次数..没办法哦...
----------------解决方案--------------------------------------------------------
回复 3# 的帖子
能不能把它改一改, 它现在不能直接用*号回显#include<stdio.h>
#include<string.h>
void main()
{
int k,i;
char a[20],b[20],c[7]="adaf",d[6]="fafae",ch[20];
for(i=1;i<=3;)
{
k=0;
printf("请输入您的用户名:");
gets(a);
printf("请输入您的密码:");
gets(b);
strcpy(ch,b);
do{
b[k]='*';
printf("%c",b[k]);
k++;
}while(ch[k]!='\0');
if((strcmp(a,c)==0)&&(strcmp(ch,d)==0))
break;
else
i++;
}
if(i<=3)
printf("%s,hello!",c);
else
printf("对不起!您的输入有误,不能为您服务。");
}
----------------解决方案--------------------------------------------------------
你就用我的吧....把头文件去了..就可以了..可以放在一个.cpp文件里面编译的...
----------------解决方案--------------------------------------------------------
我的这个好用:
程序代码:
#include <stdio.h>
#include <string.h>
#define RIGHT_ID "abcde" //正确的ID
#define RIGHT_PASSWORD "12345" //正确的密码
int main()
{
char input_ID[1000], input_password[1000];
printf("欢迎语\n");
for(int i = 0; i < 3; i++)//循环3次,表示3次机会
{
printf("请输入帐户:");
scanf("%s", input_ID);
printf("请输入密码:");
scanf("%s", input_password);
if(strcmp(input_ID, RIGHT_ID) != 0)
continue;//ID错误,跳到下一个循环
else if(strcmp(input_password, RIGHT_PASSWORD) != 0)
continue;;//密码错误,跳到下一个循环
else goto login_success;//输入正确!!
}
err:
printf("登陆失败!!!!");
return 1;
login_success:
printf("登陆成功!!!!");
return 0;
}
[[it] 本帖最后由 flyue 于 2008-4-20 17:17 编辑 [/it]]
----------------解决方案--------------------------------------------------------
C语言很难实现*号的密码,用Visual C++的MFC就容易多了
你这个程序是测试的,又不是真正要用的,星号不星号都一样
----------------解决方案--------------------------------------------------------