坚持c++,真正掌握c++(2)
2016-04-01 10:10
309 查看
在c++中对c中的输入输出进行了扩展,採用了面向对象的设计方法设计了c++中的输入输出(IO)。输入输出依照操作的对象分类可分为:1. 标准IO(对计算机的键盘或者显示器进行读写操作)。2. 文件IO(对计算机中的文件进行读写操作);3. 串IO(对内存中的字符串进行读写格式化操作)。
以上三种读写分别存在于头文件iostream,fstream,strstream中。
我们常常称输入输出为输入输出流,之所以称为流。流是内存中连续的以字节为单位的空间。从源流向目的地。流具有状态和相应的操作,流的状态的訪问能够使用bad,fail,eof和good操作来完毕,clear和setstate操作能够用于改变流的状态。
每一个IO对象都会管理一个缓冲区,用于存储读写的数据。缓冲区会在特定的一些情况下被刷新:(1)程序结束(2)缓冲区满了,在写入下一个值时会被刷新(3)显示的刷新,比如endl(4)每次完毕输入输出时,用unitbuf操纵符设置流的内部状态(5)输入输出流关联;
在程序设计中,我们会遇到对多个文件的读写的问题:
以上的程序也能够直接使用一个流对象完毕,即将fin的定义移动到while循环的外面,这样读文件的话每次在打开新的文件前要首先关闭文件流。假设不是直接读数据的个数的话而是直到读到文件的尾部,则须要在close之后对文件流对象的状态进行clear才干够。
以上三种读写分别存在于头文件iostream,fstream,strstream中。
我们常常称输入输出为输入输出流,之所以称为流。流是内存中连续的以字节为单位的空间。从源流向目的地。流具有状态和相应的操作,流的状态的訪问能够使用bad,fail,eof和good操作来完毕,clear和setstate操作能够用于改变流的状态。
每一个IO对象都会管理一个缓冲区,用于存储读写的数据。缓冲区会在特定的一些情况下被刷新:(1)程序结束(2)缓冲区满了,在写入下一个值时会被刷新(3)显示的刷新,比如endl(4)每次完毕输入输出时,用unitbuf操纵符设置流的内部状态(5)输入输出流关联;
在程序设计中,我们会遇到对多个文件的读写的问题:
string add[4]={"1.dat","2.dat","3.dat","4.dat"}; for(int i=0;i<4;i++) { ifstream fin(add[i].c_str()); ...... }以上代码能够对fin不做close操作。也能够顺利完毕读文件。由于在while循环中要又一次定义fin,所以每次定义的fin对象流的状态都是好的。
以上的程序也能够直接使用一个流对象完毕,即将fin的定义移动到while循环的外面,这样读文件的话每次在打开新的文件前要首先关闭文件流。假设不是直接读数据的个数的话而是直到读到文件的尾部,则须要在close之后对文件流对象的状态进行clear才干够。
相关文章推荐
- VC++的UNICODE工程一些常用转码
- C\C++宏定义笔记
- extern用法:C文件和C++文件之间的函数互调
- 【poj 3122】Pie 题意&题解&代码(C++)
- 【学习笔记】C++中 const常用的几种形式和目的
- 2015年蓝桥杯省赛B组C/C++:加法变乘法
- C++面向对象高级编程(下)第二周-Geekband
- 2015年蓝桥杯C/C++组:串逐位和
- C++函数编译原理和成员函数的实现
- C++书籍推荐
- C++对象的内存模型
- C++(union), C#(伪union)实现 Java的Float.intBitsToFloat()方法
- 【poj 3258】River Hopscotch 题意&题解&代码(C++)
- OC语言--NSFileManager& NSFileHandle
- C语言(概念术语装逼犯)
- 链表的实现(C++)
- 【poj 3273】Monthly Expense 题意&题解&代码(C++)
- CSP考试 2014年12月第1题 门禁系统 C语言实现
- C++ 调试帮助
- C语言学习003:Hello 指针