• IO对象无拷贝或赋值,通常以引用形式传递。

IO库条件状态

strm::iostate

一种机器相关的类型,提供了表达条件状态的完整功能

strm::badbit

用来指出流已经崩溃

strm::failbit

用来指出一个IO操作失败了

strm::eofbit

用来指出流到达了文件结束

strm::goodbit

用来指出流未处于错误状态,此值保证为0

s.eof()

若s的eofbit置位,返回true

s.fail()

若s的failbit或badbit置位,返回true

s.bad()

若s的badbit置位,返回true

s.good()

s处于有效状态,则返回true

s.clear()

s的所有条件状态位复位,返回void

s.clear(flags)

将给定的标志位复位,返回void

s.setstate(flags)

将流中对应条件状态为置位,返回void

s.rdstate()

返回流s的当前状态,返回值类型为strm::iostate

缓冲刷新(数据真正写到输出设备或文件)的原因:

  • 程序正常结束
  • 缓冲区满时
  • 操纵符endl、flush、ends
  • 操纵符unitbuf设置流的内部状态,每次输出后都刷新(cout<<unitbuf;  cout<<nonunitbuf;)
  • 当读写被关联的流时,被关联的流会刷新(读cin或写cerr都会导致cout刷新)

关联—两个重载版本

cin.tie() 返回指向输出流的指针,如未关联则返回空指针;

cin.tie(&cout) 将cin关联到cout

fstream继承自iostream,定义时可以打开名为s的文件

除了<< 和 >> ,还可以open close getline

in以读模式打开

out 以写模式打开

app 每次写操作均定位到文件末尾

ate打开文件后立即定位到文件末尾

trunk  截断文件

binary 以二进制方式打开IO

默认out模式打开文件,且截断文件;如不想清空文件内容,需要同时指定app

string流

sstream strm(s); //explicit的

strm.str();  //返回所保存的string拷贝

strm.str(s); //s拷贝到strm中

某些工作是对整行进行处理,而其他一些工作是处理行内某个单词时,通常可以使用istringstream

当我们逐步构造输出希望最后一起打印时,ostringstream很有用。

C/C++基础----IO库的更多相关文章

  1. C 标准库基础 IO 操作总结

    其实输入与输出对于不管什么系统的设计都是异常重要的,比如设计 C 接口函数,首先要设计好输入参数.输出参数和返回值,接下来才能开始设计具体的实现过程.C 语言标准库提供的接口功能很有限,不像 Pyth ...

  2. C/C++基础----标准库几个工具库tuple,bitset,正则表达式,随机数,IO库

    tuple tuple可以有任意多个成员 默认初始化,值初始化 构造函数是explicit,必须直接初始化 make_tuple(v1,v2,-,vn) get<i> (t) 返回第i个数 ...

  3. WeUI基础样式库——写一个移动端界面

    WeUI是一套基础样式库,同微信原生视觉体验一致,由微信官方设计团队为微信内网页和微信小程序量身设计的.我们来看看这个基础库样式到底长什么样. 这些密密麻麻的就是压缩后的样式库.密密麻麻地看起来简直要 ...

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

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

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

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

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

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

  7. 【转载】C++ IO库

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

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

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

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

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

随机推荐

  1. js中的deom ready执行的问题

    一开始我想到这,DOMContentLoaded,不兼容, <!DOCTYPE html> <html> <head> <meta charset=" ...

  2. POJ 2195 Going Home 最小费用流 难度:1

    Going Home Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17955   Accepted: 9145 Descr ...

  3. hdu 1159 Common Subsequence (最长公共子序列 +代码)

    Problem Description A subsequence of a given sequence is the given sequence with some elements (poss ...

  4. Objective-C 类别(category)和扩展(Extension)

    1.类别(category) 使用Object-C中的分类,是一种编译时的手段,允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以 ...

  5. 解决Android4.3版本下,手机短彩接收中文文件名附件,中文名字的附件无法保存(第二步:解决从从数据库中读取附件文件名,并在长按后保存附件时,中文乱码导致的无法保存附件)

    从第一步我们发现,在第一步修改之后,在短彩绘画界面中中文附件名的附件已无法显示,经过打印堆栈我们发现还是中文乱码在作祟.下面我们接着进行分析,这次我们从UI层往逻辑处理层进行分析.首先我们找到保存附件 ...

  6. 手动开启ARC

    手动开启某些文件的ARC,在Compiler Flags一列加上-fobjc-arc就表示开启这个.m文件的ARC 禁止某些文件的ARC,在Compiler Flags一列加上-fno-objc-ar ...

  7. stm32 继电器的配置

    你可以把继电器当成一个led来控制,只不过就是电路图不一样,但配置原理是一样的, 控制相对应的GPIO口,推挽输出,就行了,然后仿真一下就会发现哒哒哒的声音.

  8. [LeetCode&Python] Problem 693. Binary Number with Alternating Bits

    Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will a ...

  9. Windows自动执行java脚本

    1.打包 idea 1).File-Project Structure-Arifacts 2). 3). 4). 5). 目录位于  根目录/out\artifacts\ 2.Windows定时任务 ...

  10. Fzu软工第一次作业-准备篇

    (0)一些想说的话 我叫陈浩,是16级计算机一个很普通的学生.我是补选选软工实践这门课的.选软工实践这门课我想了很久.因为学长学姐告诉我这是一门很锻炼人又很辛苦的课程,需要大量的时间和精力.然而如今的 ...