C++中的基本IO流

本文详细介绍了C++中的基本IO流,包括IO对象的无拷贝无赋值特性、条件状态及其管理,以及IO与缓冲区的关系。接着讨论了文件IO流,如ifstream和ofstream的使用方法,以及如何读取和写入文件。最后,提到了stringIO类stringstream的特殊操作,它是iostream的衍生,方便处理字符串输入输出。
摘要由CSDN通过智能技术生成


在C++中时不直接处理输入输出的,我们使用的是标准IO库来处理IO,这些库支持从文件、控制台窗口等读写数据,当然在C++中还有一些特殊的类型允许内存IO。比如我们就可以通过string进行读写数据。
下面我们先给出基本IO类的库类型和标准头文件

表1 基本IO库
头文件 类型
iostream istream,wistream从流读取数据;ostream,wostream向流写入数据;iostream,wiostream读写流
fstream ifstream,wifstream从文件读取数据;ofstream,wofstream向文件写入数据;fstream,wfstream读写文件
sstream istringstream,wistringstream从string读取数据;ostringstream,wostringstream向string写入数据;stringstream,wstringstream读写流

1.基本IO流

最基本的IO类也就是我们使用最频繁的iostream,我们最常使用的cincout就分别是istream对象和ostream对象。使用标准库coutcin进行输出输入时必须包含头文件<iostream>

1.1 IO对象无拷贝无赋值

对于IO对象来说,我们是不能用它来进行拷贝或者对其赋值的。

	ostream out1,out2;
	out1 = out2;	//错误,不能对IO对象赋值

既然IO流对象不能拷贝或者赋值,而我们又知道C++的函数形参是传值的,那么IO流有时候需要作为函数参数该怎么办呢,是的,在IO流作为函数参数时我们需要以引用方式传递和返回流对象。如下面的print函数和read函数分别是通过流进行打印和输入,要是需要打印的话,就要将数据输出到一个输出流ostream中并返回,我们可以看到此时返回的值是引用类型,而且作为函数参数的ostream也是一个引用类型。

	std::ostream &print(std::ostream&, const SaleItem&);
	std::istream &read(std::istream&, SaleItem&);

1.2 IO对象的条件状态

既然IO操作需要控制从设备进行输入输出,那么必然有可能会引发一些错误状态,为此C++IO库定义了一些函数和标志来帮助我们访问流的条件状态。假设有IO类型strm,我们定义了流s,下表列举出一些常用的状态标识:

表2 基本IO状态
状态名称 解释
strm::iostate 提供表达表达条件状态的完整功能
strm::failbit 用来指出IO流操作已经失败了
strm::badbit 用来指出IO流已经崩溃
strm::eofbit
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值