一个简单的C语言例子,用来实现用户的注册,把注册的信息放到文本文件中。不会重复注册信息,可以查看所有的注册信息。
先看头文件(user_data.h):
#include <stdio.h> typedef struct { char key[10]; char name[20]; int age; }User; int regist(); void read_user();
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <malloc.h> #include "user_data.h" int regist() { User user,temp; FILE* fp; int fr; printf("请输入学号:"); //gets(user.key); scanf("%s",user.key); printf("请输入姓名:"); //gets(user.name); scanf("%s",user.name); printf("请输入年龄:"); scanf("%d",&user.age); //先检查数据库中有没有该用户 fp=fopen("user.txt","rb");//以二进制的方式打开文本 if(fp==NULL) printf("文件打开失败!\n"); while(1) { fr=fread(&temp,sizeof(User),1,fp); if(fr==0) { break; } if(strcmp(temp.key,user.key)==0) { printf("用户已经存在,请重新注册!\n"); fclose(fp); return 1; } } fclose(fp); //存储数据 fp = fopen("user.txt","ab+"); fwrite(&user,sizeof(User),1,fp); fclose(fp); printf("注册成功!\n"); return 0; } void read_user() { FILE *fp; int fr; User temp; fp=fopen("user.txt","rb"); while(1) { fr=fread(&temp,sizeof(User),1,fp); if(fr==0) { break; } printf("%s\t%s\t%d\n",temp.key,temp.name,temp.age); } } int main() { int i; printf("**************************\n"); printf("请选择:\n1. 注册\t2. 查看\t3. 退出\n"); printf("**************************\n"); scanf("%d",&i); while(1) { switch (i) { case 1: regist(); break; case 2: read_user(); break; default: return 0; } printf("**************************\n"); printf("请选择:\n1. 注册\t2. 查看\t3. 退出\n"); printf("**************************\n"); scanf("%d",&i); } return 0; }
运行结果如下