C++标准I/O库:iostream, fstream, sstringstream

本文介绍了C++标准I/O库,包括iostream、fstream和sstream的使用。iostream用于控制台I/O,fstream处理文件I/O,而sstream则允许在内存中进行I/O操作。文章详细讨论了类继承体系、流状态、文件打开模式以及各种I/O操作,如输入输出操作符、getline和文件定位等。

在写代码的过程中,我们最常做的事就是io操作,无论是对控制台,还是文件。但一段时间不写代码就忘了,这里理一下C++标准I/O库的具体类和操作。

C++的标准I/O库包括我们经常使用的iostream,fstream,以及不太经常使用的stringstream。前两者是对控制台和文件的I/O操作,stringstream则可以使用I/O操作对内存中的数据进行格式化操作。C++的标准I/O操作相对与C来说,更加的简明,安全,但执行效率会有所下降。


标准I/O库类继承体系                                                                    

对于编程语言来说,在概念上,从控制终端、磁盘文件以及内存中读取数据都应该不影响I/O操作,C++为了解决支持不同设备的字符流,通过面向对象的思想(废话了,你要不用这个思想,你还是什么C++),通过继承来实现一组类,分别处理控制终端、磁盘文件,以及内存数据的I/O操作,下图是引用cplusplus官网关于输入输出流类继承体系的关系图,自己画了一下,如下:

由上图可以知道,I/O操作的基类是ios_base,各个类的用途如下:

  • <iostream>
  •                      istream    从流中读取数据
  •                      ostream   向流中写数据
  •                      iostream  对流进行读写操作,派生于istream和ostream
  • <fstream>
  •                      ifstream    从文件中读取数据,派生于istream
  •                      ofstream   向文件中写数据,派生于ostream
  •                      fstream     读写文件, 派生于iostream
  • <sstream>
  •                      istringstream    读取string对象,派生于istream
  •                      ostringstream   写string对象,派生于ostream
  •                      stringstream     读写string对象,派生于iostream

C++标准对于I/O体系,定义了基本的流格式标志(hex, dec,等),文件打开模式(in, out, bin等),流的状态标志(failbit等),以及相关的函数等,如下在linux 下/usr/include/c++/4.6/bits/ios_base.h中关于这些标志的

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值