C++字符串流保存数据
2024-10-01 08:49:46
文件流是以外存文件为输入输出对象的数据流。字符串流是以内存中用户定义的字符数组(字符串)为输入输出对象的。
建立输出字符串流:
ostrstream strout(c,sizeof(c));第一个参数是字符数组首元素的指针,第二个参数为指定的流缓冲区的大小(一般选与字符数组c的大小相同)
建立输入字符串流:
istrstream strin(c,sizeof(c));第一个参数是字符数组首元素的指针,第二个参数为指定的流缓冲区的大小(一般选与字符数组c的大小相同)
下面看一个例子:
在一个字符数组c中存放了10个整数,以空格相间隔,要求将它们放到整形数组中,在按大小排序,然后再存放回字符数组c中。
#include<strstream>
#include<iostream>
using namespace std;
int main()
{
char c[50]="12 34 65 -23 -32 33 61 99 321 32";
int a[10],i,j,temp;
cout<<"array c: "<<c<<endl; //显示字符数组的字符串
istrstream strin(c,sizeof(c)); //建立输入串流对象strin并与字符数组c关联
for(i=0;i<10;i++)
{
strin>>a[i]; //从字符数组c中读取10个证书赋给整型数组a
}
cout<<endl;
//冒泡排序
for(i=0;i<9;i++)
{
for(j=9;j>i;j--)
{
if(a[j]<a[j-1])
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
ostrstream strout(c,sizeof(c));//建立输出串流对象strout并与字符数组c关联
for(i=0;i<10;i++)
{
strout<<a[i]<<" ";
}
cout<<endl;
cout<<"array c: "<<c<<endl;
return 0;
}
输出结果:
/*
array c: 12 34 65 -23 -32 33 61 99 321 32 array c: -32 -23 12 32 33 34 61 65 99 321
*/
说明:字符数组中的空格是为了在strin读取字符串的时候,分割数字用的。
看了上面的例子,有人或许就想了(其实我一开始就这样认为=。=),我为啥要费这个劲,不直接定义一个int型的数组,这样不是更方便么?但它的意义在于我们可以通过字符串流将整数、浮点数、以及其他类型的数据等存放到字符数组中,相当于是一个万能的容器吧~
最新文章
- 25. vm安装redhat步骤
- [转]支付宝接口程序、文档及解读(ASP.NET)
- Travis-CI的初步了解和测试程序的进一步编写
- HDU 4101 Ali and Baba
- <;转载>;提升程序的特权(AdjustTokenPrivileges)
- google其他入口地址
- linux可重入、异步信号安全和线程安全
- 【C#基础】CSA控件编写秘籍
- 【git 问题小说说】 git add时候报错:LF will be replaced by CRLF
- iOS核心笔记—MapKit框架-基础
- 初始化css样式的原因
- java系统高并发解决方案(转载收藏)
- JavaScript基础语句
- Davinci DM6446开发攻略——u-boot-1.3.4移植(1)
- java web--DOM
- 动态规划——Frog Jump
- sqlServer 获取最新的一条数据
- linux和普通文本的换行问题
- Hadoop 1: NCDC 数据准备
- JDK下载与安装、 Eclipse下载与使用的总结心得_20173311118_牛明旺
热门文章
- IIS 高并发的相关配置
- Python学习之路day3-函数
- mysql ORM框架及SQLAlchemy
- codeforces 755F F. PolandBall and Gifts(贪心+多重背包)
- codeforces C. Pearls in a Row map的应用
- UVALive 3708 Graveyard(思维题)
- 设置SSH自动登陆(免密码,用户名)
- 分析 PHP升级导致系统负载过高问题(转载)
- UVA - 11922 Permutation Transformer (splay)
- 牛客网 PAT乙级(Basic Level)练习题 1023 考新郎