cin是istream 类的对象:extern istream cin;
cout是ostream的对象:extern ostream cout;
常用的函数:
::getline(流对象, string&);
操作符函数>>和<<
===
文件流:
相关的类有三个:ifstream、ofstream、fstream,均在头文件<fstream>中定义
创建文件流对象,必须跟某个文件想关联,两种方式:
ifstream infile("c:/1");
或
ifstream infile;
infile.open("c:/1");
文件名是c风格的字符串,推荐使用string对象,然后通过string对象的c_str()函数来取得c风格的字符串:
string fileName;
ifstream infile(fileName.c_str());
检查文件是否打开成功,直接判断流对象,如
if (infile)
{
//......
}
取消流对象跟文件的关联:infile.close();
每当流读到文件结尾或者遇到错误,会处于错误状态。要想正常使用这个流对象,必须使用clear()函数来使状态恢复正常。infile.clear();
文件打开模式有6种:in、out、app、ate、trunc、binary
ifstream、ofstream、fstream的对象默认的打开文件的模式分别为in、out和 in | out
只有下面几种打开模式的组合是有效的:
读文件:
in
写文件:
out (等价于out | trunc ) :打开文件时清空文件中原有的内容
out | app :不清空文件中原有的内容,文件指针定位的文件的末尾
读和写文件:
in | out :不清空文件中原有的内容,文件指针定位到文件的开头
in | out | trunc :清空文件中原有的内容
上述的5种模式组合都可以加上ate模式,ate只影响打开文件时的文件指针的定位,第一次读和写时,会定位到文件的末尾处。文件打开后,程序员可以使用成员函数seekp()或seekg()来移动文件指针.