在这里插入代码片
#ifndef _ZUOYE_H_
#define _ZUOYE_H_
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 32
int zhucexinxi();
int dengluxinxi();
#endif
主要考察文件内容的写入读取特别是流指针位置的确定
考察重复注册,主要的字符串函数的应用
#include"zuoye.h"
int main(int argc,const char *argv[])
{
int num=0;
while(1)
{
printf("---------------信息注册系统-----------------\n");
printf("--------------------------------------------\n");
printf("## 1.register 2.login 3.quit ##\n");
printf("--------------------------------------------\n");
scanf(" %d",&num);//可以加个判断是不是整形,不是返回函数
switch(num)
{
case 1:
//注册信息
zhucexinxi();
break;
case 2:
//登陆信息
dengluxinxi();
break;
case 3:
//退出系统
exit(0);
break;
default:
printf("选择有误,请从新选择\n");
break;
}
}
return 0;
}
#include"zuoye.h"
//注册信息
int zhucexinxi()
{
FILE *fp;
fp=fopen("user.txt","a+");
while(fp==NULL)
{
perror("fopen error");
return -1;
}
//判断用户是否已经存在
char name1[N]={0};
char name2[50]={0};
char id1[N]={0};
printf("请输入注册用户名字:");
scanf(" %s",name1);
int i=0;
int a=0;
fseek(fp,0,SEEK_SET);
while(fgets(name2,sizeof(name2),fp)!=NULL)
{
name2[strlen(name2)-1]='\0';
fflush(fp);
i=0;
char pnode[32]={0};
while(name2[i]!=':')
{
pnode[i]=name2[i];
i++;
}
a=strcmp(pnode,name1);
if(a==0)
{
printf("用户名已经注册,请重新输入\n");
fclose(fp);
return -1;
}
}
printf("请输入你的密码:");
scanf(" %s",id1);
fflush(stdin);
fprintf(fp,"%s:%s\n",name1,id1);
fflush(fp);
fclose(fp);
return 0;
}
//登陆信息
int dengluxinxi()
{
FILE *fp;
fp=fopen("user.txt","r");
while(fp==NULL)
{
perror("fopen error");
return -1;
}
char name1[N]={0};
char name2[50]={0};
char id1[N]={0};
printf("请输入你的登陆用户名字:");
scanf(" %s",name1);
fflush(stdin);
int i=0;
int a=0;
//查找用户
while(fgets(name2,sizeof(name2),fp)!=NULL)
{
name2[strlen(name2)-1]='\0';
fflush(fp);
i=0;
char pnode[32]={0};
while(name2[i]!=':')
{
pnode[i]=name2[i];
i++;
}
a=strcmp(pnode,name1);
if(a==0)
{
strcat(name1,":");
printf("请输入你的登陆密码:");
scanf(" %s",id1);
strcat(name1,id1);
int a= strcmp(name1,name2);
if(a==0)
{
printf("登陆成功\n");
fclose(fp);
return 0;
}
else
{
printf("用户名密码输入错误,请重新输入\n");
fclose(fp);
return -1;
}
}
}
printf("用户名输入错误,请重新输入\n");
fflush(fp);
fclose(fp);
return 0;
}