作业要求:
要求从终端输入账户,密码;
与文件中的账户密码比较
如果账户不存在,则输出用户不存在
如果账户存在,密码错误,则输出密码错误
如果账户密码均正确,输出登录成功;
代码:
#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("usr.txt","a+");
if(NULL == fp)
{
perror("fopen");
return -1;
}
//get_name循环与文件中的账户名进行比较
//如果比较到相同的账户名,但密码不相同,则可以输入密码错误
//如果没有比较到相同的账户名,则用户不存在
//如果相同用户名,相同密码,则输入登录成功
char file_name[20];
char file_passwd[20];
int flag = 0;
while(1)
{
if(fscanf(fp,"%s %s",file_name,file_passwd)==EOF)
{
flag = 1;
//printf("文件读取完毕,均未找到该用户\n");
break;
}
if(strcmp(get_name,file_name) == 0&&strcmp(get_passwd,file_passwd)!=0)
{
printf("%s 密码错误\n",get_name);
break;
}
if(strcmp(get_name,file_name) == 0&&strcmp(get_passwd,file_passwd)==0)
{
printf("%s 登录成功\n",get_name);
break;
}
}
if(1 == flag)
{
// fprintf(fp,"%s %s\n",get_name,get_passwd);
printf("%s 用户不存在\n",get_name);
}
fclose(fp);
return 0;
}
结果: