c++输入输出流及文件操作详解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)字符串流 对内存中指定空间进行输入和输出。 通常指定一个字符数组作为存储空间。
7.1.2 头文件
➢ iostream.h
包含操作所有输入/输出流所需的基本信息 istream.h , ostream.h
➢ iomanip.h
包含格式化I/O操纵算子,用于指定数据输入输出的格式
➢ fstream.h
输入数据
__________ __________
内存 __________ __________
输出数据
7.1.1 冲区
• 缓冲区buffer是内存中的一个临时存储区, 用来匹配不同部件数据传输率的差异。
通过使用缓冲的方式可以更高效地处理输入输出, 信息从设备和程序之间传输时可临时存储在缓冲区中, 等待累积成数据块或合适的事机再传送的目的地。
第7章 输入输出流
7.1 流类和流对象 7.2 标准IO流和流对象 7.3 格式控制 7.4 文件处理
本 章 内 容- 第一讲
1、输入输出流的含义
流类与流对象
2、标准输入输出流
标准IO流对象 IO流成员函数 - get(), getline() 与 >> - put(), << 流状态及函数 – clear(), good(), eof()
✓ cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据。
流插入运算符
7.2.1 标准输出流
• 标准错误流对象cerr(console error ) • 标准错误流对象clog(console log的)
作用都是在标准输出设备上显示出错信息, 两个对象一般关联显示进行器输出。
cerr << “Zero encountered. “<<endl;
输出流对象
ostream cout
➢ 程序员可以定义所需的I/O流对象, 使用流库提供的工作方式实现数据传输。
流类对象可以建立和删除,可从流中获取数据和向流添加数据。
7.2 标准流对象及常用成员函数
• 标准流对象是在std命名空间中定义的流对象,提 供内存与常用外部设备进行数据交互功能。
声明在头文件iostream
7.1.2 流类
在C++中输入输出流被定义为类,I/O库中的类称为流类, 编译系统提供了用于输入输出的iostream类库。
流类中的常用类的继承层次关系
7.1.2 流类
(1)标准流 提供通用输入输出操作, 作为其他I/O流基类 系统指定的标准设备的I/O操作。
(2)文件流 以外存中的文件为对象进行输入和输出。 以文件为对象的输入输出,包括从磁盘文件输入数据, 或将数据输出到磁盘文件。
区别是 cerr不经过缓冲区,直接向显示器上输出有关 信息,而clog中的信息存放在缓冲区中,缓冲区满后 或遇endl时输出。
7.2.1 标准输出流
ostream类的公有成员函数
函数
功能
put
无格式,插入一个字节
write flush
从os无tre格am式&,插p入ut(一c字ha节r c序h列);
处理文件信息,包括建立文件,读/写文件的各种操作接口
每一种C++版本通常还包含其他一些与I/O相关的库,提供特定系统的某些功能
7.1.3 流对象
➢ I/O流类库预定义了一批流对象,连接常用的外部设备.
输入流对象
istream cin
__________ __________
内存 __________ __________
流(stream)表示信息从源到目的端的流动, 负责建立数据生产者和消费者之间的联系, 数据按顺序从一个对象传送到另一对象。
……
C++中把数据之间的传输操作称作”流”
7.1 IO流
➢ I/O系统的任务就是在内存和外部设备之间稳定可靠 地传输数据和解释数据。 程序中,对数据的输入/输出是以字节流实现的 应用程序对字节序列作出各种数据解释.
本 章 内 容 -第二讲
3、文件流及文件操作
文件的概念 数据流动方向, 文本文件与二进制文件
文件流类与文件流对象 文件的打开与关闭
打开方式
顺序读写/ 随机读写操作
文件指针
文件操作成员函数 <<,>>, put, get(), getline(), read(), write()
第7章 输入输出流
函数 read get getline ignore peek gcount eatwhite seekg tellg operstor>>
功能 无格式输入指定字节数 从流中提取字符,包括空格 从流中提取一行字符 提取并丢弃流中指定字符 返回流中下一个字符,但不从流中删除 统计最后输入的字符个数 忽略前导空格 移动输入流指针 返回输入流中指定位置的指针值 提取运算符, 不包括空格、Tab和回车分隔符
刷新输出流
seekp
移动输出流指针
tellp
返回输出流中指定位置的指针值
operstor<< 插入运算符
7.2.2 标准输入流
• cin
✓ istream类的对象,它从标准输入设备(键盘)获取数据, 程序中的变量通过流提取符“>>”从流中提取数据。
7.2.2 标准输入流
• cin
✓ istream类的对象,它从标准输入设备(键盘)获取数据, 程序中的变量通过流提取符“>>”从流中提取数据。
➢ C++的输入输出流是指由若干字节组成的字节序列 流中的内容可以是ASCII字符、图形图像、数字音频
视频等形式的信息。
7.1 IO流
➢ I/O流类库提供对象之间的数据交互服务 输出流Output stream:数据从内存传送到某个载体或设备中; 输入流 Input stream:数据从某个载体或设备传送到内存中;
✓ 在istream流类重载中>>的一组公用成员函数 istream& operator >>(基本类型标识符&);
流提取符从流中提取数据时通常跳过输入流中的空格、tab键、换行符 等空白字符。
只有在输入完数据再按回车键后,该行数据才被送入键盘缓冲区, 形成输入流,提取运算符才能从中提取数据。
istream类的公有成员函数
7.2.1 标准输出流
• cout
✓ ostream 类的对象(console output)
通常连向显示器,可以重定向(关联至文件)
✓ 在输出流类中重载<<的一组公用成员函数,实现安全便捷的 输出基本数据类型,输出自定义类型对象需要单独重载
ostream& operator <<(基本类型标识符);
7.1.2 头文件
➢ iostream.h
包含操作所有输入/输出流所需的基本信息 istream.h , ostream.h
➢ iomanip.h
包含格式化I/O操纵算子,用于指定数据输入输出的格式
➢ fstream.h
输入数据
__________ __________
内存 __________ __________
输出数据
7.1.1 冲区
• 缓冲区buffer是内存中的一个临时存储区, 用来匹配不同部件数据传输率的差异。
通过使用缓冲的方式可以更高效地处理输入输出, 信息从设备和程序之间传输时可临时存储在缓冲区中, 等待累积成数据块或合适的事机再传送的目的地。
第7章 输入输出流
7.1 流类和流对象 7.2 标准IO流和流对象 7.3 格式控制 7.4 文件处理
本 章 内 容- 第一讲
1、输入输出流的含义
流类与流对象
2、标准输入输出流
标准IO流对象 IO流成员函数 - get(), getline() 与 >> - put(), << 流状态及函数 – clear(), good(), eof()
✓ cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据。
流插入运算符
7.2.1 标准输出流
• 标准错误流对象cerr(console error ) • 标准错误流对象clog(console log的)
作用都是在标准输出设备上显示出错信息, 两个对象一般关联显示进行器输出。
cerr << “Zero encountered. “<<endl;
输出流对象
ostream cout
➢ 程序员可以定义所需的I/O流对象, 使用流库提供的工作方式实现数据传输。
流类对象可以建立和删除,可从流中获取数据和向流添加数据。
7.2 标准流对象及常用成员函数
• 标准流对象是在std命名空间中定义的流对象,提 供内存与常用外部设备进行数据交互功能。
声明在头文件iostream
7.1.2 流类
在C++中输入输出流被定义为类,I/O库中的类称为流类, 编译系统提供了用于输入输出的iostream类库。
流类中的常用类的继承层次关系
7.1.2 流类
(1)标准流 提供通用输入输出操作, 作为其他I/O流基类 系统指定的标准设备的I/O操作。
(2)文件流 以外存中的文件为对象进行输入和输出。 以文件为对象的输入输出,包括从磁盘文件输入数据, 或将数据输出到磁盘文件。
区别是 cerr不经过缓冲区,直接向显示器上输出有关 信息,而clog中的信息存放在缓冲区中,缓冲区满后 或遇endl时输出。
7.2.1 标准输出流
ostream类的公有成员函数
函数
功能
put
无格式,插入一个字节
write flush
从os无tre格am式&,插p入ut(一c字ha节r c序h列);
处理文件信息,包括建立文件,读/写文件的各种操作接口
每一种C++版本通常还包含其他一些与I/O相关的库,提供特定系统的某些功能
7.1.3 流对象
➢ I/O流类库预定义了一批流对象,连接常用的外部设备.
输入流对象
istream cin
__________ __________
内存 __________ __________
流(stream)表示信息从源到目的端的流动, 负责建立数据生产者和消费者之间的联系, 数据按顺序从一个对象传送到另一对象。
……
C++中把数据之间的传输操作称作”流”
7.1 IO流
➢ I/O系统的任务就是在内存和外部设备之间稳定可靠 地传输数据和解释数据。 程序中,对数据的输入/输出是以字节流实现的 应用程序对字节序列作出各种数据解释.
本 章 内 容 -第二讲
3、文件流及文件操作
文件的概念 数据流动方向, 文本文件与二进制文件
文件流类与文件流对象 文件的打开与关闭
打开方式
顺序读写/ 随机读写操作
文件指针
文件操作成员函数 <<,>>, put, get(), getline(), read(), write()
第7章 输入输出流
函数 read get getline ignore peek gcount eatwhite seekg tellg operstor>>
功能 无格式输入指定字节数 从流中提取字符,包括空格 从流中提取一行字符 提取并丢弃流中指定字符 返回流中下一个字符,但不从流中删除 统计最后输入的字符个数 忽略前导空格 移动输入流指针 返回输入流中指定位置的指针值 提取运算符, 不包括空格、Tab和回车分隔符
刷新输出流
seekp
移动输出流指针
tellp
返回输出流中指定位置的指针值
operstor<< 插入运算符
7.2.2 标准输入流
• cin
✓ istream类的对象,它从标准输入设备(键盘)获取数据, 程序中的变量通过流提取符“>>”从流中提取数据。
7.2.2 标准输入流
• cin
✓ istream类的对象,它从标准输入设备(键盘)获取数据, 程序中的变量通过流提取符“>>”从流中提取数据。
➢ C++的输入输出流是指由若干字节组成的字节序列 流中的内容可以是ASCII字符、图形图像、数字音频
视频等形式的信息。
7.1 IO流
➢ I/O流类库提供对象之间的数据交互服务 输出流Output stream:数据从内存传送到某个载体或设备中; 输入流 Input stream:数据从某个载体或设备传送到内存中;
✓ 在istream流类重载中>>的一组公用成员函数 istream& operator >>(基本类型标识符&);
流提取符从流中提取数据时通常跳过输入流中的空格、tab键、换行符 等空白字符。
只有在输入完数据再按回车键后,该行数据才被送入键盘缓冲区, 形成输入流,提取运算符才能从中提取数据。
istream类的公有成员函数
7.2.1 标准输出流
• cout
✓ ostream 类的对象(console output)
通常连向显示器,可以重定向(关联至文件)
✓ 在输出流类中重载<<的一组公用成员函数,实现安全便捷的 输出基本数据类型,输出自定义类型对象需要单独重载
ostream& operator <<(基本类型标识符);