没有合适的资源?快使用搜索试试~ 我知道了~
C++风格的几种IO流
需积分: 12 2 下载量 168 浏览量
2018-07-17
00:16:45
上传
评论
收藏 263KB PDF 举报
温馨提示
试读
4页
C++风格的三个IO流对象 stringstream、ostringstream、istringstream
资源推荐
资源详情
资源评论
C++
风格的几种
IO
流
ostringstream、istringstream、stringstream
· 本文介绍的三个
IO
函数均在头文件
<sstream>
中。
1
、
stringstream
可以说 stringstream 是 ostringstream 和 istringstream 的综合体,因为在 ostringstream
和 istringstream 的一般用法中,凡是使用 ostringstream(或 istringstream)函数的地方,
都可以用 stringstream 进行替换,因此不介绍 stringstream。
2
、
ostringstream
ostringstream 对象将所有“赋”给它的字符串整合成一个流存放,该流中各个字符串的排列
顺序按照“赋值”时的顺序排列,当输出 ostringstream 对象时,该流被完整输出。
ostringstream 对象中存放的流可以使用函数.str("")进行清空。养成好习惯,在程序允许的
情况下在每次重新调用 ostringstream 对象时最好清空内存,避免流过长引致的奇怪问题。
可以通过栈 Stack 理解 ostringstream 的这种功能:
(1)把各条零散的字符串存放到 ostringstream 对象里(字符串的数量、长度没有限制);
(2)ostringstream 在内部对零散的字符串进行连续顺序的整合;
(3)把整合后的字符串流整体输出。
下面通过一个例子理解这个流程:
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
ostringstream oss; //声明 ostringstream 对象 oss
oss << "abcd"; //向 oss 放入第一个字符串
oss << " "; //注意,必须放入字符串,即使是单个字符也要使用双引号,支持空字符
oss << "efghijklm89";
oss << "zxcvbn";
oss << endl; //把换行符放到流 oss 的里面与放在 cout 最后是一样的
cout << oss.str(); // .str( )函数,提供 C 中的字符串头指针或者匿名的内存首地址
//必须通过.str( )函数提供地址值给
oss
输出,
cout << oss
;是无法输出
oss
内存的
oss<<"who"; //输出流后,oss 的内容并不会被清空,可以继续在原有的流末尾插入新的字符串
cout << oss.str()<<endl; //这里是为了说明"换行符放到流 oss 的里面与放在 cout 最后是一样的"
return 0;
}
输出:abcd efghijklm89zxcvbn //第一次输出
abcd efghijklm89zxcvbn
who
3.14159 a,bce fg
097557u
gfhl78hh
a,bce fg
(空格)
3.14159
ostringstream 对象
用 cout 把流整体输出
通过<<操作符向
ostringstream
对象输入字符串
//第二次输出
资源评论
小優YoU
- 粉丝: 1914
- 资源: 227
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功