作业:手动创建一个usr.txt文档,文档中存储用户的名字和密码,格式如下:
账户 密码,每个账户密码占一行:
zhangsan 12345
lisi abcd
要求:
实现登录功能。
终端输入账户密码
若账户密码均存在,则输出登录成功
若账户不存在,则输出账户不存在
若密码错误,则输出密码错误
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct Node
{
char id[12];
char code[6];
}arr[0];
int main(int argc, const char *argv[])
{
char e;
printf("您是否是新用户?y/n");
scanf(" %c",&e);
if('y'==e)
{
FILE* fp=fopen("./usr.txt","a+");
printf("请输入账户:");
scanf("%s",arr[0].id);
printf("请输入密码:");
scanf("%s",arr[0].code);
fprintf(fp,"%s",arr[0].id);
fputc(' ',fp);
fprintf(fp,"%s",arr[0].code);
fputc('\n',fp);
fclose(fp);
}
else
{
FILE* fp=fopen("./usr.txt","r");
char count[20];//从文件中获取的账号
char code[6];//从文件中获取的密码
int a;
char arr1[20];//输入账户
char arr2[6];//输入密码
printf("请输入账户:");
scanf("%s",arr1);
while(1)
{
a = fscanf(fp,"%s",count);
if(a==EOF)
{ printf("账户不存在\n");
break;
}
fscanf(fp,"%s",code);
if(strcmp(arr1,count)==0)
{
printf("请输入密码:");
scanf("%s",arr2);
if(strcmp(arr2,code)==0)
{
printf("login success\n");
break;
}
else
{
printf("code fault\n");
break;
}
}
}
fclose(fp);
}
return 0;
}