一、IO类

1、iostream定义了读写流的基本类型,fstream定义了读写命名文件的类型,sstream定义了读写内存string对象的类型

2、不能拷贝IO对象,因此不能将形参或返回类型设置为流类型:通常以引用方式传递和方回流

3、读写一个IO对象会改变其状态,因此传递和返回的引用不能是const的

4、通常在使用一个流之前应该检查它是否处于良好状态

5、管理输出缓冲

    • 默认情况下,cin和cerr都关联到cout,因此,读cin或写cerr都会导致cout的缓冲区被刷新
cout << "hi!" << end;    //输出hi和一个换行符,然后刷新缓冲区
cout << "hi!" << flush; //输出hi,刷新缓冲区,不附加任何额外字符
cout << "hi!" << ends; //输出hi和一个空字符,刷新缓冲区

二、文件输入输出

1、ifstream从一个给定文件读取数据,ofstream向一个给定文件写入数据, fstream可以读写给定文件

2、打开文件:fstream fstrm(s, mode);按mode方式打开文件

in    //以读方式打开
out //以写方式打开
app //每次写操作前定位到文件尾
ate //打开文件后立即定位到文件尾
trunc //截断文件
binary //二进制方式进行IO
  • 与ifstream关联的文件默认以in模式打开;与ofstream关联的文件默认以out模式打开;与fstream关联的文件默认以in和out模式打开
  • 默认情况下,即使没有指定trunc,以out模式打开的文件也会被截断
  • 要最佳模式必须自己指定app模式才可以追加写(ofstream::out | ofstream::app)

三、string流:可以向string写入数据,从string读取数据

  • istringstream:从string读取数据
  • ostringstream:向string写入数据
  • 我们将一个istringstream与刚刚读取的文本行进行绑定,就可以在此istringsteam上使用输入运算符>>来读取当前记录的每个元素

第八章: IO库的更多相关文章

  1. 第八章 IO库

    8.1&&8.2 #include <iostream> #include <vector> #include <string> using nam ...

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

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

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

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

  4. 文件IO函数和标准IO库的区别

    摘自 http://blog.chinaunix.net/uid-26565142-id-3051729.html 1,文件IO函数,在Unix中,有如下5个:open,read,write,lsee ...

  5. 【转载】C++ IO库

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

  6. 从Decorator,Adapter模式看Java的IO库

    我想任何一本介绍模式的书在讲到Decorator模式的时候不能不提到它的实际应用--在Java/IO库里面的应用,<<Java与模式>>这本书也不例外,有点不一样的是,这本书在 ...

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

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

  8. 标准模板库——IO库

    IO库设施: . istream(输入流)类型,提供输入操作. . ostream(输出流)类型,提供输出操作. . cin,一个istream对象,从标准输入读取数据. . cout,一个ostre ...

  9. 高级UNIX环境编程5 标准IO库

    标准IO库都围绕流进进行的 <stdio.h><wchar.h> memccpy 一般用汇编写的 ftell/fseek/ftello/fseeko/fgetpos/fsetp ...

  10. IO库

    IO类 C++语言不直接处理出入输出,而是通过一族定义在标准库中的类型来处理IO.这些类型支持从设备读取数据.向设备写入数据的IO操作,设备可以是文件 .控制台窗口 等.还有一些类型允许内存IO ,即 ...

随机推荐

  1. ubuntu下google 拼音输入法的安装

    google拼音输入法安装 (1).获代替码:(没有git的先安装git:sudoapt-get install git-core) $>gitclone git://github.com/tc ...

  2. golang之pkg(包)

    一.概述 Golang拥有超过100个标准包(可用go list std |wc -l查看) 任何包系统设计的目的都是简化大型程序的设计和维护工作,通过将一组相关的特性放进一个独立的模块以便于理解和更 ...

  3. css 元素居中方法

    目前知道有两种方法 方法一:主要适用于元素未设定高度的情况下. 直接上代码 html: <div class="nav-content"> <ul ng-clic ...

  4. C# 根据年月获得此月第一天和最后一天,并计算工作日

    string str = "2015年3月"; ); ); , secondIndex - firstIndex - ); , ); DateTime dt = DateTime. ...

  5. 关于DLL中Resources文件修改

    1.先用IL DASM工具将所需要修改的DLL进行文件转换成IL文件,其中*.il文件就是代码,*.resources,这个文件就是资源. 2.找到需要修改的resources文件 //新文件 IRe ...

  6. (转)C# 读取EXCEL文件的三种经典方法

    原文地址http://www.open-open.com/code/view/1420029490093 1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取 ...

  7. PHP的五种常见设计模式

    工厂模式 最初在设计模式 一书中,许多设计模式都鼓励使用松散耦合.要理解这个概念,让我们最好谈一下许多开发人员从事大型系统的艰苦历程.在更改一个代码片段时,就会发生问题,系统其他部分 —— 您曾认为完 ...

  8. mongo设计(一)

    原文:http://blog.mongodb.org/post/87200945828/6-rules-of-thumb-for-mongodb-schema-design-part-1 By Wil ...

  9. python----iter\next

    1.说明:__getitem__\setitem可以迭代,它已经不被推荐了:建议使用__iter__\next. 2.python会先去检查__iter__\next然后再去检查__getitem__ ...

  10. 移动网络山寨版(OpenBTS)【2】频段的故事

    OpenBTS 系统有两个看点.一个是无线收发,尤其是频段的处理,另一个是网络系统,尤其是替代传统的基站(BTS),基站控制器(BSC),移动控制中心(MSC),以及(HLR/VLR)的另类方案. 先 ...