【c++ primer读书笔记】【第8章】IO流
来源:互联网 发布:观察者效应 知乎 编辑:程序博客网 时间:2024/06/04 20:01
1、iostream定义了读写流的基本类型,fstream定义了读写命名文件的类型,sstream定义了读写string对象的类型。
头文件
类型
iostream
istream, wistream从流读取数据
ostream, wostream向流写入数据
iostream, wiostream读写流
fstream
ifstream, wifstream从文件读取数据
ofstream, wofstream向文件写入数据
fstream, wfstream读写文件
sstream
istringstream, wistringstream从string读取数据
ostringstream, wostringstream向string写入数据
stringstream, wstringstream读写string
2、IO对象不能拷贝或赋值,不能将形参或返回类型设置为流类型;读写IO对象会改变其状态,因此传递和返回的IO对象的引用不能是const的。
3、IO类定义了一些函数和标志,可以用来访问和操作流的条件状态。
4、刷新输出缓冲区
cout << "hi" << endl; //输出hi和一个换行,然后刷新缓冲cout << "hi" << flush; //输出hi,然后刷新缓冲,不添加数据cout << "hi" << ends; //输出hi 和一个空字符,然后刷新缓冲
unitbuf操纵符:告诉流在接下来的每次写操作之后都进行一次flush操作
cout<<unitbuf; //所有输出操作后都会立即刷新缓冲区cout<<nounitbuf; //回到正常的缓冲方式
5、string流
istringstream从string读取数据,ostringstream向string写入数据,stringstream既可以从string读取数据也可以向string写入数据
将一个data.txt文件中的行保存在一个vector<string>中,然后用istringstream从vector读取数据元素,每次读取一个整数并求和。data.txt里的数据如下:
1 2 3 45 6 78 910完整程序如下:
#include<iostream>#include<string>#include<sstream>#include<vector>#include<fstream>using namespace std;int main(){string line;vector<string> vec;int sum=0;ifstream file("data.txt");while(getline(file,line)) vec.push_back(line);for(auto& l:vec){ istringstream is(l); int word; while(is>>word) sum+=word;}cout<<sum<<endl;system("pause");return 0;}程序运行结果:
0 0
- 《C++Primer》读书笔记——第8章 IO库
- 【c++ primer读书笔记】【第8章】IO流
- C++Primer第5版读书笔记(第8章)
- C++Primer 读书笔记 第1章 开始
- C++Primer 读书笔记 第2章 浏览
- C++Primer第5版读书笔记(第2章)
- C++Primer第5版读书笔记(第3章)
- C++Primer第5版读书笔记(第4章)
- C++Primer第5版读书笔记(第5章)
- C++Primer第5版读书笔记(第6章)
- C++Primer第5版读书笔记(第7章)
- C++Primer第5版读书笔记(第9章)
- C++Primer第5版读书笔记(第10章)
- C++Primer第5版读书笔记(第11章)
- C++Primer第5版读书笔记(第12章)
- C++Primer第5版读书笔记(第13章)
- C++Primer第5版读书笔记(第14章)
- C++Primer第5版读书笔记(第15章)
- 关于android日历控件的样式
- DS之何谓数据结构
- rpmlib(payloadisxz) <= 5.2-1 is needed问题解决方法
- Java设计模式-回调函数和观察者模式
- ubuntu14.04安装GStreamer插件
- 【c++ primer读书笔记】【第8章】IO流
- latch: cache buffers chains
- setsockopt 的 SO_REUSEADDR标识使用说明
- 编译原理学习笔记
- sql语句模糊查询like的用法
- Zookeeper无法启动
- WIFI定位——访苏州优频科技总经理朱宇红博士
- 通过JDK源码解析Thread(Runable target ...)调用的是哪个run方法
- android之路之Handler的使用