《C++ Primer》读书笔记-第八章 02 文件IO

    xiaoxiao2021-12-14  19

    作者:马志峰 链接:https://zhuanlan.zhihu.com/p/24133740 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    声明:

    文中内容收集整理自《C++ Primer 中文版 (第5版)》,版权归原书所有。原书有更加详细、精彩的释义,请大家购买正版书籍进行学习。本文仅作学习交流使用,禁止任何形式的转载

    正文

    ifstream, wifstream 从文件读ofstream, wofstream 向文件写fstream, wfstream 读写

    除了继承自iostream类型的行为外 fstream中定义的类型增加了一些新的成员 来管理与流关联的文件

    继承

    iostream::iostate read(iostream &, int);

    第一个参数是iostream类型的引用 由于fstream是iostream的子类,也可以传递fstream类型的对象

    read(cin, 100); read(strm, 100);

    继承来的不止这些

    新增

    fstream fstrm; //fstream是某个具体的文件IO类fstream fstrm(s); //指定s时,open函数被自动调用fstream fstrm(s, mode);fstrm.open(s);fstrm.close();fstrm.is_open();

    open用于将fstream关联到文件,如果构造时传递不文件名,open被自动调用 close用于断开关联,析构时close被自动调用

    ofstream out; out.open( sfile ); if( out ) { }

    注意:

    可以用流的状态作为条件,检查文件是否打开成功必须先关闭已经关联的文件,才可以打开新的文件

    文件模式

    in 读out 写app 追加ate 打开文件后立即定位到文件末尾trunc 截断文件,仅在out下使用binary 二进制

    支持位运算,可以组合使用

    默认情况下,即使不设置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

    转载请注明原文地址: https://ju.6miu.com/read-968304.html

    最新回复(0)