• Chapter8(IO库) --C++Prime笔记


    1.IO对象不能拷贝或对IO对象赋值,进行IO操作的函数通常是以引用方式传递和返回流。

    2.一个流一旦发生错误,其上的后续的IO操作都会失败。代码通常应该在使用一个流之前检查它是否处于良好状态。确定一个流对象的状态的最简单的方法就是将它当作一个条件来使用。(while,for循环条件)

    3.iostate类型:badbit,failbit,eofbit,goodbit
    查询这四个标志位的函数:
    ①good,所有错误位均未置位的情况下返回true.
    ②fail,同good
    ③eof,eofbit被置位才返回true
    ④bad,badbit被置位才返回true

    3.刷新输出缓冲区:
    cout << "hi" << endl; //输出hi和一个换行,然后刷新缓冲区
    cout << "hi" << flush;//输出hi,然后刷新缓冲区,不附加任何额外字符
    cout << "hi" << ends;//输出hi和一个空字符,然后刷新缓冲区

    使用unitbuf操作符
    cout << unitbuf;  //所有输出操作后都会立即刷新缓冲区
    //任何输出都立即刷新,无缓冲
    cout << nounitbuf; //回到正常的缓冲模式

    4.如果程序异常终止,输出缓冲区是不会被刷新的。当一个程序崩溃后,它所输出的数据很可能停留在缓冲区中等待打印。

    5.对于一个打开的文件流使用open会失败,并导致failbit被置位。随后试图使用文件流的操作都会失败。

    6.文件流的文件模式:
    in 以读方式打开
    out 以写方式打开
    app 每次写操作前均定位到文件末尾
    ate打开文件后立即定位到文件末尾
    trunc 截断文件
    binary 以二进制进行IO
    指定模式的限制:
    为了保留out模式打开的文件的内容,必须指定app模式或者同时指定in模式

    指定模式的例子:
    ofstream out ("file",ofstream::out | ofstream::app);

    对于一个给定流,每当打开文件时,都可以改变其文件模式。

    7.对于类对象来说,相比赋值来说,引用的方式效率会高很多。
  • 相关阅读:
    1.IntelliJ IDEA搭建SpringBoot的小Demo
    etc目录名字的意思---挖Linux中的古老缩略语
    CI当开启URL重写的时候,报错500 Internal Server Error
    app后端架构设计(转)
    Redis安装及主从配置
    ***Linux文件夹文件创建、删除、改名
    Redis中常用命令
    linux上ln链接命令详细说明
    Redis快速入门:安装、配置和操作
    redis的PHP扩展包安装方法
  • 原文地址:https://www.cnblogs.com/LyndonMario/p/9326139.html
Copyright © 2020-2023  润新知