标准IO库
- istream (输入流)类型,提供输入操作
- ostream(输出流)类型,提供输出操作
- cin:读入标准输入的istream对象
- cout:写到标准输出的ostream对象
- cerr:输出标准错误的ostream对象。cerr常用于程序错误信息。
- >>操作符,用于从istream对象中读入输入。
- <<操作符,用于把输出写到ostream对象中。
- getline函数,需要分别取istream类型和string类型的两个引用形参,其功能是从istream对象读取一个单词,然后写入string对象中。
1. IO对象不可复制或赋值:(1)只有支持复制的元素类型可以存储在vector或其他容器类型里。由于流对象不能复制,因此不能存储在vector(或其他)容器中。(2)形参或返回值也不能为流类型。如果需要传递或返回IO对象,则必须传递或返回指向该对象的指针或引用。如
ofstream &print( ofstream& ); //ok:takes a reference, no copy
while( print(out2) ) {/*.....*/} //ok:pass reference to out2
2.条件状态
考虑下面IO错误的例子
int ival;
cin>>ival;
如果在标准输入设备输入qwe,则cin在尝试将输入的字符串读为int型数据失败后,会生成一个错误状态。如果输入123,则成功读取,cin将处于正确的状态。
流必须处于无错误状态,才能用于输入或输出。检测流是否可用的最简单的方法是检查其真值:
if(cin)
//ok to use cin, it is a valid state
while(cin>>word)
//ok:read operation successful