Presentation is loading. Please wait.

Presentation is loading. Please wait.

第八章 文件 引述 输入输出流和文件概述 文件操作 流的格式化输出 程序举例 本章小节.

Similar presentations


Presentation on theme: "第八章 文件 引述 输入输出流和文件概述 文件操作 流的格式化输出 程序举例 本章小节."— Presentation transcript:

1 第八章 文件 引述 输入输出流和文件概述 文件操作 流的格式化输出 程序举例 本章小节

2 8.1 引述 文件用于对磁盘文件进行读写操作 将文件看成有序的字符或字节序列,由一个一个字符或字节数据顺序组成,称为字符流或字节流
8.1 引述 文件用于对磁盘文件进行读写操作 将文件看成有序的字符或字节序列,由一个一个字符或字节数据顺序组成,称为字符流或字节流 输入对象cin和输出对象cout实际上也是流 磁盘文件的读写操作与cin、cout的使用类似 任务8.1 从键盘输入40位学生的信息,将其存储到磁盘文件 任务8.2 从任务8.1建立的磁盘文件中读取学生信息,将其存放到结构数组并输出。 算法分析: 要解决这两个问题,主要是要解决学生信息的存储和读取问题,即如何使用C语言,将一些信息存入到一个磁盘文件中,然后从磁盘文件中读取信息并存放到数组中。为此需要用到C语言的文件这一数据类型。

3 8.2 输入输出流和文件概述 输入输出流概述 文件概述

4 8.2.1 输入输出流概述 文本流(text stream)又称文字流或字符流 文本流是一个个的字符,用换行符表示一行的结束。
文本流文件的信息直接可见 利用文本流只能读写文本文件 二进制流(binary stream) 又称字节流 二进制流则由一系列字节组成 字节流文件信息一般不能直接可见 用于对声音、图像等非文本文本进行读写 cin和cout实际上都是文本流

5 8.2.2 文件概述 文件可表示磁盘文件、键盘、显示器等所有的外部设备 C文件常被称为流式文件
流式函数将文件或数据项作为单个字符(或字节)构成的数据流来处理 流式函数在读写流式文件的数据时采用了缓冲存储区域,可以一次传输大量数据,提高了输入输出的效率 缓冲存储技术用于解决内存、外存读写速度差异很大的问题

6 8.3 文件操作 文件的打开和关闭 字符流文件的输入与输出 字节流文件的输入与输出 文件的随机访问

7 8.3.1 文件的打开和关闭 头文件fstream ifstream:输入流,用于读文件 ofstream:输出流,用于写文件
ifstream fin(filePath); //打开字符文件用于读 ifstream fin(filePath,ios::binary); //打开字节文件用于读 ofstream fout(filePath); //打开字符文件用于写 ofstream fout(filePath,ios::binary);//打开字节文件用于写 ifstream file; file.open(filePath, ios::binary); //打开字节文件用于读

8 8.3.1 文件的打开和关闭 文件打开模式 模式参数 模式含义 ios::in 读 ios::out 写 ios::app 从文件末尾开始写
ios::binary 二进制模式 ios::nocreate 打开文件时,若文件不存在,不创建 ios::noreplace 打开文件时,若文件不存在,则创建 ios::trunc 打开一个文件,然后清空内容 ios::ate 打开一个文件时,将位置移动到文件尾 参数用|(按位与)操作符进行连接 fstream file; file.open(filePath, iso::in|ios::out); // 打开字符文件用于读写

9 8.3.1 文件的打开和关闭 测试文件是否正确打开 if(!file) { // 文件打开失败 } 关闭文件 file.close();

10 8.3.2 字符流文件的输入和输出 1. 字符流文件的输出 与cout类似,使用插入运算符<< 任务8.1 算法

11 8.3.2 字符流文件的输入和输出 任务8.1 核心程序——打开文件,读入学生信息
ofstream fout(“student.txt”);// 打开字符文件用于写 if(!fout) { cout<<"文件打开失败!"<<endl; return -1; // 返回错误代码-1 } for(i = 1; i <= n; i++) // 循环输入学生信息 cout<<"请输入第"<<i<<" 位学生信息:"<<endl; stuList[i] = readStudent();

12 8.3.2 字符流文件的输入和输出 任务8.1 核心程序——学生信息写入文件
for(i = 1; i <= n; i++) // 循环将学生信息写入文件 { fout<<"姓名 "<<stuList[i].name<<endl; fout<<"学号 "<<stuList[i].no<<endl; fout<<"性别 " <<(stuList[i].sexy==1?"男":"女")<<endl; fout<<"生日 "<<stuList[i].birthday.year<<"-" <<stuList[i].birthday.month<<"-" <<stuList[i].birthday.day<<endl; fout<<"身高 "<<stuList[i].height<<endl; fout<<"体重 "<<stuList[i].weight<<endl; fout<<"电话 "<<stuList[i].telephone<<endl; fout<<"E_mail "<<stuList[i].e_mail<<endl; fout<<"QQ号 "<<stuList[i].qq<<endl; } fout.close(); // 关闭文件

13 8.3.2 字符流文件的输入和输出 1. 字符流文件的输出 生成的文本文件示例

14 8.4 流的格式化输出 格式控制函数 行内格式的控制

15 8.5 程序举例 存储课程信息 读取课程信息


Download ppt "第八章 文件 引述 输入输出流和文件概述 文件操作 流的格式化输出 程序举例 本章小节."

Similar presentations


Ads by Google