IO类型在三个独立的头文件中定义:
- iostream定义读写控制窗口的类型;
- fstream定义读写已命名文件的类型;
- sstream定义读写存储在内存中的string对象;
IO对象无拷贝或赋值,读写一个IO对象会改变其状态,因此不能为const。
确定一个输入符合要求的最简单方法:
int temp = 0; //当输入的是字符的话就不会执行if语句。 if (cin >> temp) { cout << "yes" << endl; }
接受一个iostream类型引用参数的函数,可以用一个对应的fstream类型来调用(继承)
一个文件流对象要关联另一个文件时,必须先关闭。当一个fstream对象被销毁时,close会自动被调用。
文件模式
stringstream对象的使用
//记录格式如下:zhougb3 075488888888 93939339393993
string line, word;
while (getlin(cin, line)) //读取一行
{
istringstream stream(line); //将读取的行与stream绑定
while (stream >> word) //读入每行中的单词
{
//do something
}
}
istringstream是从外部读取数据全部暂存,再分别放到指定的变量名处(内存)
ostringstream是将内存中数据全部暂存,再集体输出。(289页有例子)