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.对于类对象来说,相比赋值来说,引用的方式效率会高很多。

Chapter8(IO库) --C++Prime笔记的更多相关文章

  1. C5 标准IO库:APUE 笔记

    C5 :标准IO库 在第三章中,所有IO函数都是围绕文件描述符展开,文件描述符用于后续IO操作.由于文件描述符相关的操作是不带缓冲的IO,需要操作者本人指定缓冲区分配.IO长度等,对设备环境要求一定的 ...

  2. 【c++ Prime 学习笔记】第8章 IO库

    C++语言不直接处理输入输出,而是通过标准库中的一组类来处理IO 1.2节介绍的IO库: istream(输入流)类型,提供输入 ostream(输出流)类型,提供输出 cin,是istream对象, ...

  3. C++ Primer 读书笔记: 第8章 标准IO库

    第8章 标准IO库 8.1 面向对象的标准库 1. IO类型在三个独立的头文件中定义:iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,而sstream所定义的类型则用于 ...

  4. 《C++ Primer》笔记 第8章 IO库

    iostream定义了用于读写流的基本类型,fstream定义了读写命名文件的类型,sstream定义了读写内存string对象的类型. 标准库使我们能忽略这些不同类型的流之间的差异,这是通过继承机制 ...

  5. 【转载】C++ IO库

    本篇随笔为转载,原贴地址:<C++ Primer>第8章 IO库 学习笔记. 1.IO类 #include <iostream> istream//从流中读取数据 ostrea ...

  6. java的io库用到的装饰模式是如何体现的?

    概论 java的io包下大概有85个类,真复杂.其实不然这些类又可以分为以下四个部分. 输入流                输出流 字节流         InputStream          ...

  7. [Python ]小波变化库——Pywalvets 学习笔记

    [Python ]小波变化库——Pywalvets 学习笔记 2017年03月20日 14:04:35 SNII_629 阅读数:24776 标签: python库pywavelets小波变换 更多 ...

  8. [APUE]标准IO库(下)

    一.标准IO的效率 对比以下四个程序的用户CPU.系统CPU与时钟时间对比 程序1:系统IO 程序2:标准IO getc版本 程序3:标准IO fgets版本 结果: [注:该表截取自APUE,上表中 ...

  9. [APUE]标准IO库(上)

    一.流和FILE对象 系统IO都是针对文件描述符,当打开一个文件时,即返回一个文件描述符,然后用该文件描述符来进行下面的操作,而对于标准IO库,它们的操作则是围绕流(stream)进行的. 当打开一个 ...

随机推荐

  1. 浏览器差异bug汇总(js篇)

    获取滚动条高度 var scrollTop = document.body.scrollTop || document.documentElement.scrollTop; safari浏览器时间函数 ...

  2. Javascript开发者 常用知识

    Javascript是一种日益增长的语言,特别是现在ECMAScript规范按照每年的发布时间表发布.伴随着这门语言的规模化和快速发展,掌握JS(不仅仅是jQuery)的重要性,变得更加重要. 这不是 ...

  3. iOS开发学习-放大长图与屏幕等宽

    /* 需要得到一个图片的放大比例,这个比例就是屏幕的宽度与图片真实宽度的比值 */ CGFloat newZoomScale = LZ_SCREEN_WIDTH / [_photoImageView. ...

  4. 第二阶段Sprint6

    昨天:设置统一保存路径为内存卡,实现可以选择播放已有的视频 今天:将“录制”及“保存”整合到一起,修复出现的Bug,使之能够正常运行. 遇到的问题:感觉调的摄像头录制的画面不好,这怎么办啊?

  5. Task 6.4 冲刺Two之站立会议9

    今天主要对昨天用户提出的意见加以改进,虽然有些不能轻易实现但是仍然查阅了很多资料.因为他目前可以实现实时通信的功能,而我们想要在这个基础上实现临时的视频聊天的功能,但是时间有点紧迫,所以还没有实现.

  6. mvc拦截请求IHttpModule

    代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syste ...

  7. Internet 校验和的数学性质

    Internet 校验和(Checksum)仅计算头部的正确性,这一点很重要,这意味着 IP 协议不检查 IPv4 packet 有效载荷部分的数据正确性.为了保证有效载荷部分的正常传输,其他协议必须 ...

  8. 6/4 sprint2 看板和燃尽图的更新

  9. HDU 2106 母猪的故事

    http://acm.hdu.edu.cn/showproblem.php?pid=2160 Problem Description 话说现在猪肉价格这么贵,著名的ACBoy 0068 也开始了养猪生 ...

  10. area point sql

    UPDATE aa_info_area t,(SELECT areaId, areacenter,CONCAT('POINT(' ,substring_index(areacenter,',', 1) ...