zoukankan      html  css  js  c++  java
  • C++ Primer 读书笔记: 第8章 标准IO库

    第8章 标准IO库

    8.1 面向对象的标准库

    1. IO类型在三个独立的头文件中定义:iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,而sstream所定义的类型则用于读写存储在内存中的string对象。在fstream和sstream里定义的美中类型都是从iostream头文件中定义的相关类型派生而来。

    2. 流对象不能复制,因此不能存储在vector容器中

    3. 形参或返回类型也不能为流类型。如果需要传递或返回IO对象,则必须传递或返回指向该对象的指针或引用。

    8.2 条件状态

    IO标准库管理一系列条件状态成员,用来标记给定的IO对象是否处于可用状态,或者碰到了哪种特定的错误。

    1. s.eof(); s.fail(); s.bad(); s.good(); s.clear(); s.clear(flag); s.setstate(flag); s.rdstate()

    2. 分析while(cin>>val)出现错误的情况?

    8.3 输出缓冲区的管理

    下面几种情况将导致缓冲区的内容被刷新,即写入到真实的输出设备或文件:

    (1)程序正常结束。

    (2)在一些不确定的时候,缓冲区可能已经满了

    (3)用操纵符显式的刷新缓冲区,例如行结束符endl。例如:cout<<flush; cout<<ends; cout<<endl;

    (4)在每次输出操作执行完后,用unitbuf操纵符设置流的内部状态。例如:cout<<unitbuf<<nounitbuf; 等价于cout<<flush;

    (5)可将输出流与输入流关联起来

    8.4 文件的输入和输出

    1. 检查文件打开是否成功

    ifstream infile;
    ofstream outfile;
    infile.open("in");
    outfile("outfile");
    if(!infile){
      cerr<<"error: unable to open input file";
    }
    

    2. 将文件流与新文件重新捆绑

    ifstream infile("in");
    infile.close();
    infile.open("next");
    

    3. 清除文件流的状态

    inflie.clear();
    

    4. 文件模式

    in 打开文件做读操作

    out 打开文件做写操作

    app 在每次写之前找到文件尾

    ate 打开文件后立即将文件定位在文件尾

    trunc 打开文件时清空已存在的文件流

    binary 以为禁止模式进行IO操作

    例如:

    ofstream outfile1("file1");
    ofstream outfile2("file1", ofstream::out | ofstream::trunc);
    ofstream outfile3("file3", ofstream::app);
    

    对同一个文件作输入和输出运算

    fstream inOut("copyOut", fstream::in | fstream::out);
    

    模式是文件的属性而不是流的属性

    8.5 字符串流

    sstream头文件中有istringstream和ostringstream两个类分别进行读写操作

  • 相关阅读:
    C语言-const和volatile深度分析
    C语言循环语句工程用法
    C分支语句的工程用法
    函数对象分析
    关于protel电路图导入word
    单片机程序编写与下载
    关于Protel输出PDF原理图
    关于定时器、外部中断的一些理解
    锁存、译码介绍
    关于Proteus电压设置
  • 原文地址:https://www.cnblogs.com/xiamaogeng/p/4458538.html
Copyright © 2011-2022 走看看