C++语言不直接处理输入输出,而是通过一族定义在标准库中的类型来处理IO。
第八章 IO库
一些简单的IO库设施回顾:
- istream类型,提供输入操作。
- ostream类型,提供输出操作。
- cin,一个istream对象,从标准输入读取数据。
- cout,一个ostream对象,向标准输出写入数据。
- cerr,一个ostream对象,输出程序错误信息,写入到标准错误。
- >>运算符,用来从一个istream对象读取输入的数据。
- <<运算符,用来向一个ostream对象写入输出数据。
- getline函数,从一个给定的istream读取一行数据,存入一个给定的string对象中。
一. IO类
IO库类型和头文件
头文件 类型 iostream istream, wistream ostream, wostream iostream, wiostream fstream ifstream, wifstream ofstream, wofstream fstream, wfstream sstream istringstream, wistringstream ostringstream, wostringstream stringstream, wstringsztream
- 以w开头的类型和对象用来操纵wchar_t类型的数据。(宽字符)
- 继承机制(inheritance):如ifstream、istringstream均继承自istream。
IO对象无拷贝或赋值
- 因此也不能将形参或返回类型设置为流类型。通常以引用方式传递或返回流。且传递和返回的引用不能是const的。
条件状态(condition state)
IO库条件状态
strm::iostate //strm是一种IO类型。iostate是一种极其相关的类型,提供了表达条件状态的完整功能。 strm::badbit //用来指出流已崩溃 strm::failbit //用来指出一个IO操作失败了 strm::eofbit //用来指出流达到了文件结束 strm::goodbit //用来指出流未处于错误状态,此值保证为零 s.eof() //若流s的eofbit置位,则返回true s.fail() //若流s的failbit或badbit置位,则返回true s.bad()