200822C阶段一文件

目录

  • 一、学习的知识点
    • 文件
      • 定义
      • 文件的操作
      • 文件相关的封装函数
  • 二、上课没有听懂或者没有理解的地方
  • 三、当天学习的收获
  • 四、作业的思路、不会的地方
  • 五、其他需要反馈的问题
  • 六、心得体会

一、学习的知识点

文件

定义

文件一般指存储在外部介质(如磁盘磁带)上数据的集合。操作系统是以文件为单位对数据进行管理的。从操作系统的角度看,每一个与主机相连的输入输出设备看作是一个文件。

文件的操作

在缓冲文件系统中,每个被使用的文件都要在内存中开辟一FILE类型的区,存放文件的有关信息。stdio.h 中定义了一个称为 FILE 的结构.

	FILE *fp; //文件指针指向一个结构fp=fopen("data.txt","r+"); //返回文件类型的指针//r+ 如果打开一个不存在的文件,返回NULL;打开一个存在的文件,打开成功不会新建//w+ 如果打开一个不存在的文件,建立一个新的文本文件;打开一个存在的文件,也会新建if(fp == NULL){文件打开失败fp=fopen("data.txt","w+");}printf("文件打开成功");//将内存数据写入到文件,成功返回写入单元个数,失败返回0,写入后指针自动偏移res=fwrite(&menu[0],sizeof(MENUL_T),2,fp);//1.要写的数据地址 2.写入单元的大小 3.写入的单元个数 4.写入的文件指针fflush(fp); //刷新,将写入的数据保存到文件中fseek(fp,2*sizeof(MENU_T),0);//指针偏移1.文件指针 2.偏移量 3.指针偏移0-从头偏移 1-从当前位置 2-从尾巴rewind(fp); //文件指针定位到头//从文件读取数据到内存中,成功返回读取的单元个数,失败返回0,读取后指针自动偏移res=fread(&menu[3],sizeof(MENU_T),1,fp); //读出数据,从fp指向的文件读取数据存入到user[1]//1.读出数据要保存的地址 2.读出单元的大小 3.读出的单元数 4.要读取的文件的指针fclose(fp);//关闭文件

文件相关的封装函数

//打开或新建一个文件
FILE *file_open(char *name)
{//定义一个文件类型的指针,返回指针FILE *fp=NULL;fp=fopen(name,"rb+"); //r+:打开一个不存在的文件,返回NULL,打开成功返回文件指针if(fp == NULL){fopen(name,"wb+");//w+ 如果打开一个不存在的文件,建立一个新的文本文件;打开一个存在的文件,也会新建}return fp;
}/*
函数功能:从文件里面读取数据保存到链表中
函数参数:文件指针,服务每一块数据单元的大小,(菜谱、员工、台桌)
*/
void *File_read(FILE * fp,int size)
{//创建链表LIST_T *head=NULL;void *data=NULL; //保存数据的地址head=List_Init();data=malloc(size);memset(data,0,size);//从文件读取数据,不知道文件有多少数据,使用循环读取while(fread(data,size,1,fp)){//存入链表List_Add(head,data);//重新开空间并初始化data=malloc(size);memset(data,0,size);}return head;
}//将整条链表中的数据写入文件
void File_write(FILE * fp,int size,LIST_T *head)
{LIST_T *ptemp=head->pnext;rewind(fp);while(ptemp != NULL){fwrite(ptemp->pdata,size,1,fp);fflush(fp);ptemp=ptemp->pnext;}
}

二、上课没有听懂或者没有理解的地方

三、当天学习的收获

学会了使用文件永久保存数据

四、作业的思路、不会的地方

按上课讲的思路写

五、其他需要反馈的问题

六、心得体会

最近学了挺多新知识,要好好消化理解


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部