《C语言程序设计》课件-项目12:文件操作和综合项目_第1页
《C语言程序设计》课件-项目12:文件操作和综合项目_第2页
《C语言程序设计》课件-项目12:文件操作和综合项目_第3页
《C语言程序设计》课件-项目12:文件操作和综合项目_第4页
《C语言程序设计》课件-项目12:文件操作和综合项目_第5页
已阅读5页,还剩20页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计文本文件的写入CONTENTS01文件指针04文本文件的写入目录02文件的打开03文件的关闭文件指针C语言中,对文件的所有操作是必须依靠文件指针来完成。文件指针的定义格式:FILE*变量名;例FILE*fp;打开文件时,文件的位置指针指向文件开头。读取过程,指针发生移动。文件打开操作文件之前首先要使用fopen()函数打开文件,该函数返回值类型为文件指针。格式如下:fopen("文件路径","文件打开方式")注意:

文件路径中的”\”,要用“\\”

例如:

fopen("D:\\file.txt","r");"r"(只读)"r"(只读)"r"文本文件(只读)"r+"文本文件(读写)"rb"二进制文件(只读)"rb+"二进制文件(读写)文件打开方式"a"文本文件(追加)"a+"文本文件(读写)"ab"二进制文件(追加)"ab+"二进制文件(读写)"w"文本文件(只写)"w+"文本文件(读写)"wb"二进制文件(只写)"wb+"二进制文件(读写)文件关闭C语言提供了一个fclose()函数,该函数用于关闭文件,其返回值类型为int类型:intfclose(FILE*fp);fclose()执行成功,则返回0,否则返回EOF(EOF是头文件stdio.h中定义的宏常量,值为-1)。【样例1】将键盘输入的一行字符串,输出到e:\test\t1.txt的文件中文本文件的写入"r"(只读)字符方式文件写函数fputc(ch,fp);【实验一】e:\test\t1.txt不存在【实验二】e:\test\t1.txt已经存在【样例1】将键盘输入的一行字符串,输出到e:\test\t1.txt的文件中文本文件的写入"r"(只读)字符方式文件写函数fputc(ch,fp);intmain(){charch;FILE*fp;fp=fopen("e:\\test\\t1.txt","w");if(fp==NULL){printf("文件打开失败\n");exit(1);}printf("请输入字符串:\n");ch=getchar();while(ch!='\n'){fputc(ch,fp);ch=getchar();}

if(fclose(fp)){printf("文件关闭失败\n"); exit(1);}return0;}注意:

1、文件不存在时,自动创建

2、文件存在时,原文件内容清空。文本文件的写入"r"(只读)字符串方式文件写函数fputs()fputs(str,fp);文本文件的写入"r"(只读)格式化文件写函数fprintf()fprintf(fp,格式控制字符串,输出项列表);intmain(){inta,b,c;FILE*fp;fp=fopen("e:\\test\\t2.txt","w");if(fp==NULL){printf("文件打开失败\n");exit(1);}a=6;b=9;c=a+b;fprintf(fp,"相加结果是%d\n",c);

if(fclose(fp)){printf("文件关闭失败\n"); exit(1);}return0;}文本文件的写入"r"(只读)数据块读写函数fwrite()fwrite()函数用于读写一组数据,多用于二进制文件调用形式为:fwrite(buffer,size,count,fp)buffer是指向待写入数据的指针size是要写数据块的字节数count是要写数据块的个数fp为文件指针。fp必须指向一个以写方式打开的文件。C语言程序设计随机文件CONTENTS01随机文件读写定位目录02样例分析随机文件读写定位"r"(只读)rewind()函数:该函数的作用是使文件指针指向文件的头部。函数调用形式为:rewind(fp);随机文件读写定位"r"(只读)fseek(fp,offset,origin);函数的功能是将fp所指文件的读写指针移动到从origin偏移offset的地方,设置成功,返回0,失败返回-1fp是文件指针offset表示移动偏移量,它应是long型数据参数origin的值有三个,具体如下:●SEEK_SET:对应的数字值为0,表示从文件开头进行偏移;●SEEK_CUR:对应的数字值为1,相对于当前位置进行偏移;●SEEK_END:对应的数字值为2,相对于文件末尾进行偏移。随机文件读写定位"r"(只读)ftell()函数ftell()函数的作用是获取文件指针读写的位置,格式如下:ftell(fp);其中,fp为文件指针。函数的功能是返回fp所指文件的读写指针相对于文件头的位置,成功则返回一个大于0L的值,否则返回-1L。样例分析"r"(只读)【任务一】学生结构:学号姓名年龄生成10条学生记录,写进文件e:\test\student.dat【任务二】打开e:\test\student.dat利用随机文件读取任意记录样例分析"r"(只读)【任务一】学生结构:学号姓名年龄生成10条学生记录,写进文件e:\test\student.dat样例分析"r"(只读)【任务二】打开e:\test\student.dat利用随机文件读取任意记录C语言程序设计综合项目CONTENTS01学生信息的插入、删除、打印目录学生信息的插入、删除、打印及保存"r"(只读)主菜单:intmain(){intflag,n=0;printf("共有%d条记录\n",n);printf("请选择:1插入2删除3打印0退出");scanf("%d",&flag);while(flag!=0){if(flag==1){

}elseif(flag==2){}elseif(flag==3){}

printf("共有%d条记录\n",n);printf("请选择:1插入2删除3打印0退出");scanf("%d",&flag);}printf("运行完成\n");return0;}学生结构:structstudent{charno[10];charname[15];intage;};学生信息的插入、删除、打印及保存"r"(只读)插入记录voidinsert(structstudentdata[],int*pn,intk,structstudents){inti,n;n=*pn;for(i=n+1;i>=k+1;i--)data[i]=data[i-1];data[k]=s;*pn=n+1;}学生信息的插入、删除、打印及保存"r"(只读)删除记录voiddel(structstudentdata[],int*pn,intk){inti,n;n=*pn;for(i=k;i<=n-1;i++)data[i]=data[i+1];*pn=n-1;}学生信息的插入、删除、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论