在写课设时因为没有学习数据库,便用本地文件内容去代替了数据库。通过链表去实现对于文件的操作。
首先应该定义一个结构体去形成对应的链表。
//包含了电影的名称和票价两个基本信息
typedef struct film{
char name[50];
int fare;
struct film *next;
}Node;
读取本地文件
Node *readfilm(){
Node *head,*r,*fil;
FILE *fp;
fp=fopen("需要读取文件的所在路径","r+");
if(fp==NULL){
printf("读取文件出错,按任意键退出!");
getchar();
exit(1);
}
head=(Node *)malloc(sizeof(Node));
head->next=NULL;
r=head;
while(!feof(fp))
{
fil=(Node *)malloc(sizeof(Node));
fscanf(fp,"%s %d",fil->name,
&fil->fare);
r->next=fil; //利用尾插去形成链表
r=fil;
}
r->next=NULL;
fclose(fp);
return head;
}
保存修改之后的文件
void *savefilm(Node *Head){
Node *node;
FILE *fp;
fp=fopen("原路径","at+");//a是追加,可以直接用w去覆盖原有内容
if(fp==NULL){
printf("写文件出错按任意键返回管理员界面");
getchar();
}
node=Head->next;
while(node!=NULL){
fprintf(fp,"\n%s %d",
node->name,node->fare);
node=node->next;}
getchar();
fclose(fp);
}
要区分绝对路径和相对路径。