c语言管理系统如何将数据录入文件中
最近在写管理系统,对输入数据的存储需要用到与文件有关的知识
献上管理系统有关数据存储和文件录入的代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct people
{
char name[30];
int num;//学号
char major[30];//专业
char classes[30];//班级
char selected;//已经选过的课程
char optional[30];//可供选择的课程
struct people *next;
}node,*Pnode;
void addemp()//添加用户信息
{
FILE *fp;
node *emp1;
int u=0;
char choice='y';
if((fp=fopen("E:/information.txt","ab+"))!=NULL)
{
do{
u++;
emp1=(node*)malloc(sizeof(node));
if(emp1==NULL)
{
printf("内存分配失败,按任意键返回!");
system("cls");
admenu();
}
printf("输入第%d个学生的信息:\n",u);
printf("学号:\n");
scanf("%d",&emp1->num);
printf("姓名:\n");
scanf("%s",&emp1->name);
printf("专业:\n");
scanf("%s",&emp1->major);
printf("班级:\n");
scanf("%s",&emp1->classes);
printf("已经选过的课程:\n");
scanf("%s",&emp1->selected);
printf("可供选择的课程:\n");
scanf("%s",&emp1->optional);
emp1->next=NULL;//设置当前EMP结构的next指针的值为NULL
if(emp_first==NULL)
{
emp_first=emp1;
emp_end=emp1;
emp_end->next = NULL;
}else{
emp_end->next=emp1;
emp_end=emp1;
emp_end->next = NULL;
}
savedata(emp_first);
gfirst=0;
printf("\n");
printf("\n是否继续输入?(y/n))");
fflush(stdin);//清除标准输入缓冲区
choice=getchar();
if(choice!='y')
{
break;
}
system("cls");
}while(1);
fclose(fp);
}
printf("\n输入完毕,按任意键返回到主菜单!");
admenu();
}
首先申请关于用户结构体,里面有学号,姓名,班级等信息,并给他命名为node
之后建立一个函数为增加成员信息的函数addemp()
然后判断E盘中的文件information是否为空,若为空,则则创建一个文件存放
打开方式为fp=fopen()
设置choice的原因是为了判断是否还要输入数据。