写一个usr.txt文档,文档中每一行的格式为:姓名 密码 例如:
zhangsan 123456
lisi abcdef
任务:
要求从终端输入账户,密码;
与文件中的账户密码比较
如果账户不存在,则输出用户不存在
如果账户存在,密码错误,则输出密码错误
如果账户密码均正确,输出登录成功;
代码:
#include <stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
char get_name[20],get_passwd[20];
//从终端获取账户密码
printf("请输入账户和密码>>>");
scanf("%s %s",get_name,get_passwd);
//打开文件 以读的方式打开
FILE *fp=fopen("./user.txt","a+");
if(NULL==fp)
{
perror("fopen");
return -1;
}
//get_name循环与文件中的账户名进行比较
//如果比较到相同的账户名则可以输出注册失败 该账户已经存在
//如果没有比较到相同的账户名 则可以将终端数get_name
//get_passwd写入大文件中 注册成功
char file_name[20];
char file_passwd[20];
int flag=0;
while(1)
{
if(fscanf(fp,"%s %s",file_name,file_passwd)==EOF)
{
printf("文件读取完毕,未找到该用户\n");
break;
}
if(strcmp(get_name,file_name)==0)
{
flag=1;
printf("%s该账户已经存在\n",get_name);
break;
}
}
if(1==flag) //如果flag为1 则代表该用户没有注册过
{
if(strcmp(get_passwd,file_passwd)==0)
{
printf("%s用户登录成功\n",get_name);
}
else
{
printf("账户存在但密码错误\n");
}
}
//关闭文件
fclose(fp);
return 0;
}
效果:

本文介绍了一个使用C语言实现的基本账户验证系统。该系统通过读取usr.txt文件中的用户名和密码来验证用户输入的凭证是否有效。如果用户名不存在或密码错误,系统会给出相应的提示。

1万+

被折叠的 条评论
为什么被折叠?



