第八章 标准io库

原创 2011年01月22日 18:23:00

 

8.1 面向对象的io

1) 组成:

 

对应的宽字符的流类型就是在前面加了一个w例如:

wistream

wostream

wcout

wcin

…..

2) 继承关系

3) io对象不可以复制或复制

1. 因此不能存储在vector 等容器内

2. 当然也不可以作为形参或返回类型,如果用作参数,必须是引用类型.对流的操作总会涉及到改变,所以不要用const类型

8.2 条件状态

1)       标准库定义的状态标记

strm::iostate

 

2)       状态标记的取值

strm::badbit //被破坏的流,系统级错误

strm::failbit //失败的io操作

strm::eofbit //流已经达到文件的结束符

 

3)       查询状态的函数

eof();         //如果strm::eofbit 被设置,返回true

fail();         //如果 strm::failbit 被设置,返回true

good();     //如果流处于有效状态 返回true

bad();        //如果 strm::badbit 被设置,返回 true

 

4)       设置状态的函数

clear();     //使流中所有状态都重设为有效,说白了就是清除错误状态

clear(flag);        //清除指定错误状态

setsate(flag); //strm::iostate 添加指定的状态

 

5)       返回现在状态

rdstate();

8.3 输出缓冲区的管理

1) 刷新缓冲区

endl;//输出一个 ‘/n’ 再刷新

ends;//输出一个 ‘/0’ 再刷新

flush;//直接刷新

 

2) 如果要刷新所有的输出可以用unitbuf操纵符

cout << unituf <<” … ”;//等价于 cout << unituf <<” … ”<<flush;

 

3) 绑定

任何读入输入流的尝试都将首先刷新其对应的输出缓冲

 

cin.tie(&cout);//绑定

cin.tie(0);//取消绑定

ostream *oldTie = cin.tie();//保存绑定对象

8.4 文件的输入和输出

1) 类型

ifstream 读文件

ofstream 写文件

fstream 可读可写

 

2) 打开文件

istream infile(iffile.c_str());

infile.open(“in”);

if(!infile)

         //open error;

 

3) 关联不同文件 

infile.close();

infile.open(“out”);

 

4) 清除状态

当文件流出现了什么非正常状态(包括eofbit )的时候需要clear() 否则不能继续读取

 

4) 文件模式

ostream :  out() trunc(清空已经存在的文件流) app

istream :   ate(定位在文件尾) binary in()

 

例子:

Ifstream &openfile(ifstream& in ,const string &filename)

{

         in.close();

         in.clear();

         in.open(filename.c_str());

         return in;

}

8.5  字符串流

例子:

string line,word;

while(getline(cin,line))

{

         istringstream stream(line);

         while(stream>>word){}

}

 

1)       特定函数

strm.str();//返回string

strm.str(s);//string  复制给s

 

2)       使用

用来转换输入输出格式是不错的类似于c风格的 sprintf的功能

 

 

 

C++primer第4版第八章标准IO库

流不能复制。 ofstream o1, o2; o1 = o2; //wrong 流不能直接作为函数形参或者返回值,但可以使用流的引用或者指针...

C++ Primer 【第四版】第八章 标准IO库

第八章 标准IO库  8.1 假设os是一个ofstream对象,下面程序做了什么?        os         如果os 是ostringstream对象呢? ...

C++ Primer 4 第八章 标准 IO 库

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

(笔记)C++ Primer/第八章 标准IO库

IO:就是输入和输出 读和写 IO对象不可进行复制和赋值 例如:ofstream out1,out2;          out1=out2//error,io对象不能复制和赋值 如果一个函数需传递或...

第八章:标准 IO 库

参考资源:( http://www.cnblogs.com/kingcat/archive/2012/05/09/2491847.html ) C++ 的输入/输出由标准库提供。 标准库IO 的继...

【C++ Primer】【学习笔记】【第八章】标准IO库之:文件的输入和输出

一、文件流对象的使用 1、fstream头文件定义了三种文件IO的类型: 类型 说明 ifstream 从istream派生而来,提供...
  • jay_yin
  • jay_yin
  • 2015年01月19日 23:51
  • 284

【重学《C++Primer第四版》】第八章、标准IO库

本章主要讲解了IO标准库的基础知识。 下面是本章的内容图:简单的iostream继承层次 Details of knowledge 1.基类:C++中的父类就是基类 2.派生类:C++中继...

第八章:标准IO库

1.IO类型在三个独立的头文件中定义:iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,而sstream定义的类型则用于读写存储在内存中的string对象.2.IO对象不...

C++ Primer 第八章 标准IO库

什么是缓冲区     缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。         缓冲...

C++ Primer 第八章 标准IO库

转载自:http://www.cnblogs.com/kingcat/archive/2012/05/09/2491847.html 学习本章内容之前有必要对缓冲区的概念做一个基本了解,我引...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第八章 标准io库
举报原因:
原因补充:

(最多只允许输入30个字)