博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【c++ primer读书笔记】【第8章】IO流
阅读量:4329 次
发布时间:2019-06-06

本文共 1307 字,大约阅读时间需要 4 分钟。

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<

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
#include
#include
#include
#include
using namespace std;int main(){ string line; vector
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<
<
程序运行结果:

转载于:https://www.cnblogs.com/ruan875417/p/4495574.html

你可能感兴趣的文章
[Bzoj1009][HNOI2008]GT考试(动态规划)
查看>>
Blob(二进制)、byte[]、long、date之间的类型转换
查看>>
OO第一次总结博客
查看>>
day7
查看>>
iphone移动端踩坑
查看>>
vs无法加载项目
查看>>
Beanutils基本用法
查看>>
玉伯的一道课后题题解(关于 IEEE 754 双精度浮点型精度损失)
查看>>
《BI那点儿事》数据流转换——百分比抽样、行抽样
查看>>
哈希(1) hash的基本知识回顾
查看>>
Leetcode 6——ZigZag Conversion
查看>>
dockerfile_nginx+PHP+mongo数据库_完美搭建
查看>>
Http协议的学习
查看>>
【转】轻松记住大端小端的含义(附对大端和小端的解释)
查看>>
设计模式那点事读书笔记(3)----建造者模式
查看>>
ActiveMQ学习笔记(1)----初识ActiveMQ
查看>>
Java与算法之(2) - 快速排序
查看>>
Windows之IOCP
查看>>
机器学习降维之主成分分析
查看>>
CTP2交易所成交回报
查看>>