除了继承自iostream类型的行为外 fstream中定义的类型增加了一些新的成员 来管理与流关联的文件
第一个参数是iostream类型的引用 由于fstream是iostream的子类,也可以传递fstream类型的对象
read(cin, 100); read(strm, 100);继承来的不止这些
open用于将fstream关联到文件,如果构造时传递不文件名,open被自动调用 close用于断开关联,析构时close被自动调用
ofstream out; out.open( sfile ); if( out ) { }注意:
可以用流的状态作为条件,检查文件是否打开成功必须先关闭已经关联的文件,才可以打开新的文件支持位运算,可以组合使用
默认情况下,即使不设置trunc,以out模式打开的文件也会被截断,文件原有的内容被清空
要避免这一行为,可以指定app模式(append)
ofstream out2(file, ofstream::out); ofstream out3(file, ofstream::out | ofstream::trunc); ofstream out4(file, ofstream::app); ofstream::out5(file, ofstream::out | ofstream::app);第一句和第二句是等价的,以out模式打开文件时隐式截断 第三句和第四句是等价的
注意:
不能对输入流设置out模式,也不能对输出流设置in模式
可以对读写流设置in或out或in|out
