* 输入输出操作分类 基于控制台的I/O: 从标准输入设备(如:键盘)获得数据 把程序结果从标准输出设备(如:显示器)输出 基于文件的I/O: 从外存文件获得数据 把程序结果保存到外存文件中 * 基于控制台的I/O存在的问题 程序中所有数据到程序结束时就自动释放,有时程序运行结果需要永久性地保存起来,以供其它程序或本程序下一次运行时使用,可通过文件永久性地保存数据。 大批量的数据重复输入使用手工方式繁琐易错,使用文件输入数据可以解决这个问题 * 主要内容 文件的基本概念 C语言文件操作 * 8.1 文件的基本概念 * 文件定义及类型 文件定义 一组相关信息的集合;平时存储在外部介质上,需要时读入内存,操作完毕后再写回外部介质 文件类型 文本文件 信息以文本(字符串)格式存储 文本分行,行尾有行结束标志 一般用于存储具有“行”结构的数据,如源程序以及纯文本格式的数据等。 程序容易处理,程序员也容易理解 二进制文件 信息以二进制格式存储 内容不分行,行尾无行结束标志 一般用于存储无显示结构的数据,如目标代码程序以及二进制数据等。 程序容易处理,程序员不容易理解 * 文件指针 C语言标准库“stdio.h”定义了一个结构体类型FILE,用来描述程序中的文件,在实际编程时,需要定义一个指向该结构体类型的文件指针来操纵文件对象。 定义文件变量 定义格式:FILE * fp; 说明:要访问某个文件,一定需要首先定义文件指针类型的变量,并将该变量与对应文件关联起来,此后才能进行文件操作 * 8.2 C语言文件操作 * C语言文件I/O的基本步骤 step1:打开文件 fopen step2:读写文件 fprintf,fscanf fputc,fgetc,fgets,fputs fwrite,fread step3:关闭文件 fclose 说明:C标准库“stdio.h”提供了丰富的函数,程序员可直接调用这些函数来进行文件操作。 * 打开文件 FILE *fopen( const char *filename, const char *mode ); 返回值:指向被打开文件的指针,后续的读写和关闭文件操作都需要该指针,文件打开失败时返回空指针NULL 参数: filename:需要打开的文件名,可以是绝对路径(例如“c:\\in.txt)或相对路径(例如,in.txt),使用相对路径时程序和文件需要在同一目录下。 mode:打开模式是读还是写,二进制还是文本 * 文件打开模式 r 读模式,若文件不存在,则返回 NULL w 写模式,若文件不存在则创建它,若文件已存在则其内容被擦除 a 写模式,若文件不存在则创建它,若文件已存在则保留原内容,信息追加到文件尾部 r+ 读写模式,文件必须已存在,否则返回 NULL w+ 读写模式,若文件不存在则创建它,若文件已存在则其内容被擦除 a+ 读写模式,若文件不存在则创建它,若文件已存在则保留原内容,信息追加到文件尾部 b 以二进制方式打开,必须和前面几种模式一起使用 * 常用的几种打开文件模式 打开一个文本文件用于读数据 打开一个文本文件用于写数据 打开一个文本文件用于读写数据 FILE *fp=fopen(abc.txt,r); if(fp==NULL){ … } FILE *fp=fopen(abc.txt,w); if(fp==NULL){ … } FILE *fp=fopen(abc.txt,r+); if(fp==NULL){ … } 注意:一定要检查fopen函数的返回值。 * 常用的几种打开文件模式 打开一个二进制文件用于读数据 打开一个二进制文件用于写数据 打开一个二进制文件用读写数据 FILE *fp=fopen(abc.txt,rb); if(fp==NULL){ … } FILE *fp=fopen(abc.txt,wb); if(fp==NULL){ … } FILE *fp=fopen(abc.txt,r+b); if(fp==NULL){ … } * 关闭文件 int fclose( FILE *fp ); 返回值:返回0表示成功,返回-1表示失败 参数: fp:由fopen返回的文件指针 FILE *fp=fopen(abc.txt,r); if(fp!=NULL){ … fclose(fp); } int fcloseall(); 用于多个文件的关闭操作 * 文件结束检测操作 int feof( FILE *fp ); 返回值:返回0表示文件未结束,否则表示文件结束 参数: fp:待检测的文件指针 FILE *fp=fopen(abc.txt,r); if(fp!=NUL
您可能关注的文档
最近下载
- T_XJNYZLXH 003-2025 库尔勒香梨膏.docx VIP
- 2026年深圳市高三第一次调研考试(一模)数学试卷(含答案解析).pdf
- 2025年辽宁金融职业学院单招职业适应性测试模拟试题(附答案解析)2025.pdf VIP
- 2025版中国急性胰腺炎诊治指南(全文).pdf VIP
- 清洁生产审核课件(71) .pptx VIP
- 第4课时 被减数中间有0的连续退位减法 课件 2026青岛版数学三年级下册.pptx
- 剖宫产麻醉管理.pptx VIP
- 专题10:记叙文阅读之伏笔照应-备战2025年中考语文一轮复习现代文阅读讲与练(江苏通用)(解析版).docx VIP
- 2025年一级造价工程师(交通)案例分析真题及答案解析(100%全真题精校版精品.pdf VIP
- 幼儿园总务处维修记录表.docx VIP
原创力文档

文档评论(0)