第13讲 对文件的输入输出.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言课程设计 ——文件操作基础 何冰 hebing@gxnu.edu.cn 广西师范大学 13.1.1 什么是文件 使用磁盘数据文件的目的 程序与数据分离 数据共享 长期保存数据 13.2.1 用fopen函数打开数据文件 通常将fopen函数的返回值赋给一个指向文件的指针变量。如: FILE *fp; fp=fopen(“a1”,”r”); fp和文件a1相联系,fp指向了a1文件 13.2.1 用fopen函数打开数据文件 在打开一个文件时,通知编译系统以下3个信息: ①需要访问的文件的名字 ②使用文件的方式(“读”还是“写”等) ③让哪一个指针变量指向被打开的文件 使用文件方式参见教材表13.1。 说明: (5) 如果打开失败,fopen函数将会带回一个出错信息。fopen函数将带回一个空指针值NULL 常用下面的方法打开一个文件: if ((fp=fopen(“file1”,’r″))==NULL)  {printf(“cannot open this file\n”); exit(0);  } 终止正在执行的程序 说明: (8) 程序中可以使用3个标准的流文件:标准输入流、标准输出流、标准出错输出流。 系统已对这3个文件指定了与终端的对应关系 标准输入流是从终端的输入 标准输出流是向终端的输出 标准出错输出流是当程序出错时将出错信息发送到终端 程序开始运行时系统自动打开这3个标准流文件。因此,程序编写者不需要在程序中用fopen函数打开它们。所以以前我们用到的从终端输入或输出到终端都不需要打开终端文件。 13.2.2 用fclose函数关闭数据文件 关闭文件用fclose函数。fclose函数调用的一般形式为 fclose(文件指针);  例如: fclose (fp); 如果不关闭文件将会丢失数据。 13.3 顺序读写数据文件 13.3.1 怎样向文件读写字符 13.3.2 怎样向文件读写一个字符串 13.3.3 用格式化的方式读写文件 13.3.4 用二进制方式向文件读写一组数据 13.3.1 怎样向文件读写字符 函数名 调用形式 功能 返回值 fgetc fgetc(fp) 从fp指向的文件读入一个字符 读成功,带回所读的字符,失败则返回文件结束标志EOF(即-1) fputc fputc(ch,fp) 把字符ch写到文件指针变量fp所指向的文件中 写成功,返回值就是输出的字符;输出失败,则返回EOF(即-1) 读写一个字符的函数 例13.1 从键盘输入一些字符,逐个把它们送到磁盘上去,直到用户输入一个“#”为止。 解题思路:用fgetc函数从键盘逐个输入字符,然后用fputc函数写到磁盘文件即可。 #include stdio.h #include stdlib.h int main() { FILE *fp; char ch,filename[13]; printf(请输入所用的文件名:); scanf(%s,filename); if((fp=fopen(filename,“w”))==NULL) { printf(无法打开此文件\n); exit(0); } ch=getchar( ); 接收最后输入的回车符 输入文件名 只写 用exit函数时加 printf(“请输入一个字符串(以#结束):); ch=getchar( ); while(ch!=‘#’) { fputc(ch,fp); putchar(ch); ch=getchar(); } fclose(fp); putchar(13); return 0; } 13.3.3用格式化的方式读写文件 一般调用方式为: fprintf(文件指针,格式字符串,输出表列); fscanf (文件指针,格式字符串,输入表列); 如: fprintf (fp,”%d,%6.2f”,i,f); fscanf (fp,”%d,%f”,i,f); 13.3.4 用二进制方式向文件读写一组数据 buffer:是一个地址 对fread来说,它是用来存放从文件读入的数据的存储区的地址 对fwrite来说,是要把此地址开始的存储区中的数据向文件输出 size:要读写的字节数 count:要读写多少个数据项 fp:FILE类型指针 例13.4 从键盘输入10个学生的有关数据,然后把它们转存到磁盘文件上去。 解题思路: 定义有10个元素的结构体数组,用来存放10个学生的数据 从main函数输入10个学生的数据 用save函数实现向

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档