16:38:2 第十一章输入/输出流 本章主要内容 1.C++中的输入/输出概述 概念理解 2.C++中的流类库和流对象 了解 3.格式化输入/输出 掌握 4.流操作错误的检测 -掌握 5.用流对象进行文件操作 重点熟练掌握
16:38:22 第十一章 输入/输出流 本章主要内容 1. C++中的输入/输出概述 -- 概念 理解 2. C++中的流类库和流对象 -- 了解 3. 格式化输入/输出 -- 掌握 4. 流操作错误的检测 -- 掌握 5. 用流对象进行文件操作 -- 重点 熟练掌握
§1C++的输入/输出概述 C++支持两种方式的输入/输出 >兼容C语言的方式 调用C语言的 scanf0、 printf0等库函数 使用流对象的方式 C+中把数据从一个对象向另外一个对象的流动抽象成流 ■流对象一般与一个文件相关联,使用流对象进行输入相 当于从文件中读取数据存放于变量或对象中;使用流对 象进行输出,相当于把要输出的数据写入文件中 流妤比管道,从一端放进什么数据,从另一端就能取出 什么数据 流提供了统一的输入/输出操作:<和> 使用流对象进行输入时,从流对象中取出数据的操作称 为提取操作,格式为:流对象>变量 使用流对象进行输出时,把数据添加进流对象中的操作 称为插入操作,格式为:流对象<<数据;
16:38:22 §1 C++的输入/输出概述 ➢C++支持两种方式的输入/输出 ➢兼容C语言的方式 调用C语言的scanf()、printf()等库函数 ➢使用流对象的方式 ▪ C++中把数据从一个对象向另外一个对象的流动抽象成流 ▪流对象一般与一个文件相关联,使用流对象进行输入相 当于从文件中读取数据存放于变量或对象中;使用流对 象进行输出,相当于把要输出的数据写入文件中 ▪流好比管道,从一端放进什么数据,从另一端就能取出 什么数据 ▪ 流提供了统一的输入/输出操作:<< 和 >> 使用流对象进行输入时,从流对象中取出数据的操作称 为提取操作,格式为:流对象 >> 变量; 使用流对象进行输出时,把数据添加进流对象中的操作 称为插入操作,格式为:流对象 << 数据;
插入运算符与提取运算符可以分别串联使用 例:cin>a>>b>c>d cout<<a<<“A’<<2.5<<“ abcde”<<end1 使用沙输入时,用户从键盘输入的多个数据项之间可以用 空格、Tab或回车分隔 <和>>具有智能,能够自动判断其后数据项的类型,并 采用相应的类型进行输出或输入 cin和cout是系统预定义的流对象,分别与键盘和显示器 相关联 C++中的流既提供了低级的I/0功能,也提供了高级的I/0 功能 低级I/0把一切数据看做是无格式的字节序列(字节流), 对字节序列不做解释,可用于实现高速大容量的数据传输 高级I/0不把数据看做是字节流,而把字节序列解释为各 种预定义的或用户自定义的类型的数据,有一定格式
16:38:22 ➢插入运算符与提取运算符可以分别串联使用 例:cin >> a >> b >> c >> d; cout << a << ‘A’ << 2.5 << “abcde” << endl; ➢使用>>输入时,用户从键盘输入的多个数据项之间可以用 空格、Tab或回车分隔 ➢<< 和 >>具有智能,能够自动判断其后数据项的类型,并 采用相应的类型进行输出或输入 ➢cin和cout是系统预定义的流对象,分别与键盘和显示器 相关联 ➢C++中的流既提供了低级的I/O功能,也提供了高级的I/O 功能 ➢低级I/O把一切数据看做是无格式的字节序列(字节流), 对字节序列不做解释,可用于实现高速大容量的数据传输 ➢高级I/O不把数据看做是字节流,而把字节序列解释为各 种预定义的或用户自定义的类型的数据,有一定格式
§2流类库与流对象 C艹的流类库是用继承机制建立起来的一个输入/输出类库 主要有两个平行的基类: streambuf和ios 它们是所有流类的基类 streambuf filebuf strstreambuf stdiobuf 1 > streambuf类主要负责缓冲区的管理,提供对缓冲区的低 级操作,如设置缓冲区大小、从缓冲区中提取字节、把字 节插入缓冲区等 > filebuf类提供文件缓冲区的管理 > strstreambuf的对象使用字符串保存字符序列,提供在内 存中提取和插入数据的缓冲区管理 > stdiobuf提供标准I/0文件的缓冲区管理
16:38:22 §2 流类库与流对象 ➢C++的流类库是用继承机制建立起来的一个输入/输出类库 ➢主要有两个平行的基类:streambuf 和 ios 它们是所有流类的基类 streambuf filebuf strstreambuf stdiobuf ➢streambuf类主要负责缓冲区的管理,提供对缓冲区的低 级操作,如设置缓冲区大小、从缓冲区中提取字节、把字 节插入缓冲区等 ➢filebuf类提供文件缓冲区的管理 ➢strstreambuf的对象使用字符串保存字符序列,提供在内 存中提取和插入数据的缓冲区管理 ➢stdiobuf提供标准I/O文件的缓冲区管理
16:38:22 ≯ios是抽象基类,提供输入/输出所需的公共操作。类中包 含一指向 streambuf类对象的指针,并提供进行格式化I/0和 设置文件模式所需的枚举常量,和对I/0错误的处理操作 10S istream os tream ifstream istream-withassign istrstream ofstream lostream-withassign los trstream 1os tream fstream strstream stdiostream istream-类提供了大部分输入操作,并重载了>>运算符 ifstream文件输入流类,其对象与一个文件关联,用于从 该文件中输入数据 istrstream字符串输入流类,用于从其对象中提取数据 istream_withassign:预定义对象cin所属的流类,重载 了赋值运算符=
16:38:22 ➢ios是抽象基类,提供输入/输出所需的公共操作。类中包 含一指向streambuf类对象的指针,并提供进行格式化I/O和 设置文件模式所需的枚举常量,和对I/O错误的处理操作 ➢istream类提供了大部分输入操作,并重载了 >> 运算符 ios istream ostream ifstream istream_withassign istrstream ofstream ostream_withassign ostrstream iostream fstream strstream stdiostream ➢ifstream文件输入流类,其对象与一个文件关联,用于从 该文件中输入数据 ➢istrstream字符串输入流类,用于从其对象中提取数据 ➢istream_withassign:预定义对象cin所属的流类,重载 了赋值运算符 =