本文目录一览:
如何用C语言编程实现用户登录
C语言的话,一般用户信息存储在结构体链表里
你输入用户名回车以后,需要遍历链表,使用strcmp()函数逐一对比链表里是否存储了你输入的用户名。不存在输出“无此用户”,存在继续输入密码,将密码与此结点的密码信息对比,处理方式同用户名;
至少三次输入错误,可设一个整形变量index = 0,每错误一次执行index++,当if(index==3)成立时,输出相应信息,并执行exit(1);
多用户登录系统C语言程序
#include stdio.h
#include stdlib.h
#include "string.h"
#include "windows.h"
int total=0;
struct u_p
{
char user[20];
char pass[20];
} s[50];
void read()
{
total=GetPrivateProfileInt("INFO","count",0,"d:\\Info.dat");
int i;
char t[5]={"\0"};
for(i=0;itotal;i++)
{
sprintf(t,"%d",i+1);
GetPrivateProfileString(t,"USER","",s[i].user,20,"d:\\Info.dat");
GetPrivateProfileString(t,"PASSWORD","",s[i].pass,20,"d:\\Info.dat");
}
}
void input()
{
int p,i=0,count=0,f_u=0,f_p=0;
char user[20]={"\0"};
char password[20]={"\0"};
while(1)
{
f_u=0;
f_p=0;
system("cls");
printf("当前共有%d个注册用户",total);
printf("\n\n请输入用户名:");
memset(user,'\0',20);
scanf("%s",user);
printf("\n请输入密码:");
memset(password,'\0',20);
i=0;
while(1)
{
p=_getch();
if(p==10 || p==13)
{
break;
}
password[i++]=p;
printf("*");
}
for(i=0;itotal;i++)
{
if(strcmp(s[i].user,user)==0)
{
f_u=1;
if(strcmp(s[i].pass,password)==0)
{
f_p=1;
printf("\n\n欢迎 %s",user);
fflush(stdin);
_getche();
continue;
}
}
}
if(f_u==0)
{
printf("\n\n不存在该用户名! 选 1 重新输入,选 2 注册新用户");
int c=0;
fflush(stdin);
c=_getche();
if(c=='1')
{
continue;
}
else if(c=='2')
{
system("cls");
printf("注册新用户");
printf("\n\n\n请输入用户名:");
memset(user,'\0',20);
scanf("%s",user);
printf("\n请输入密码:");
char temp[20]={"\0"} ;
i=0;
while(1)
{
p=_getch();
if(p==10 || p==13)
{
break;
}
temp[i++]=p;
printf("*");
}
printf("\n请再次输入密码:");
i=0;
memset(password,'\0',20);
while(1)
{
p=_getch();
if(p==10 || p==13)
{
break;
}
password[i++]=p;
printf("*");
}
if(strcmp(temp,password)==0)
{
total++;
char t[5]={"\0"};
sprintf(t,"%d",total);
WritePrivateProfileString("INFO","count",t,"d:\\Info.dat");
WritePrivateProfileString(t,"USER",user,"d:\\Info.dat");
WritePrivateProfileString(t,"PASSWORD",password,"d:\\Info.dat");
printf("\n\n注册成功,请重新登录");
fflush(stdin);
_getch();
count=0;
read();
continue;
}
else
{
printf("\n\n两次密码不一致,注册失败");
fflush(stdin);
_getch();
count=0;
continue;
}
}
}
else if(f_p==0)
{
count++;
if(count=3)
{
printf("\n\n连续输入3次错误,程序将退出");
fflush(stdin);
_getche();
return ;
}
printf("\n\n密码输入错误,请重新输入");
fflush(stdin);
_getche();
}
}
return ;
}
int main(int argc, char *argv[])
{
read();
input();
return 0;
}
C语言用户登录系统账户密码比对
#include stdio.h
#include string.h
typedef struct account{
char name[32];
char acc[16];
char psw[16];
}Acc;
// data是结构体数组,filename是文件绝对地址,n保存读入的结构体数量
void GetDataFromTxt(Acc* data, const char* filename, int* n)
{
FILE *fp = fopen(filename, "r");
if( NULL == fp ){
printf("Open file failed or no this file!\n");
return;
}
int i = 0;
while( !feof(fp) )
{
fscanf(fp, "%s %s %s", data[i].name, data[i].acc, data[i].psw);
i++;
}
*n = i;
}
int main()
{
int i, n;
Acc data[100];
// 获取数据
GetDataFromTxt(data, "E:\\secret.txt", n);
printf("n = %d\n", n);
printf("姓名 账号 密码\n");
for(i = 0; i n; ++i)
printf("%-4s %-16s %-10s\n", data[i].name, data[i].acc, data[i].psw);
// 登录示例
putchar('\n');
char acc[16], psw[16];
do{
// 这里只是粗略地写了一个
// 具体的账号错误或者密码错误自行发挥
printf("请输入账号:");
scanf("%s", acc);
printf("请输入密码:");
scanf("%s", psw);
for(i = 0; i n; ++i)
{
if( strcmp(acc,data[i].acc)==0 strcmp(psw,data[i].psw)==0 ){
printf("登陆成功!\n");
break;
}
}
if( i == n ){
printf("账号或密码不正确!请重新输入!\n\n");
}else{
break;
}
}while(1);
printf("Bye bye!!!\n");
return 0;
}
C语言编写一个用户登陆的程序?
代码如下:
#includestdio.h
#pragma warning(disable:4996)
#includestring.h
int main()
{
int i = 0;
char password[10] = { 0 };
printf("请输入密码:");
while (i 3)
{
scanf("%s", password);
printf("\n");
if (strcmp(password, "972816") == 0)
{
printf("登录成功\n");
break;
}
else
{
i++;
if (i != 3)
printf("再输入一次");
}
}
if (i == 3)
printf("密码错误三次退出登录界面\n");
system("pause");
return 0;
扩展资料:
#include后面有两种方式,;和""前者先在标准库中查找,查找不到在path中查找。后者为文件路径,若直接是文件名则在项目根目录下查找。
引用方法:#include stdio.h
注意事项:在TC2.0中,允许不引用此头文件而直接调用其中的函数,但这种做法是不标准的。也不建议这样做。以避免出现在其他IDE中无法编译或执行的问题。
参考资料来源:百度百科—include
参考资料来源:百度百科—stdio.h