C++字符串流保存数据

2014-11-24 03:23:21 · 作者: · 浏览: 0

文件流是以外存文件为输入输出对象的数据流。字符串流是以内存中用户定义的字符数组(字符串)为输入输出对象的。

建立输出字符串流:

ostrstream strout(c,sizeof(c));第一个参数是字符数组首元素的指针,第二个参数为指定的流缓冲区的大小(一般选与字符数组c的大小相同)

建立输入字符串流:

istrstream strin(c,sizeof(c));第一个参数是字符数组首元素的指针,第二个参数为指定的流缓冲区的大小(一般选与字符数组c的大小相同)

下面看一个例子:

在一个字符数组c中存放了10个整数,以空格相间隔,要求将它们放到整形数组中,在按大小排序,然后再存放回字符数组c中。

#include
  
   
#include
   
     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: "<
    
     >a[i]; //从字符数组c中读取10个证书赋给整型数组a } cout<
     
      i;j--) { if(a[j]
      
       
输出结果:

/*
	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型的数组,这样不是更方便么?但它的意义在于我们可以通过字符串流将整数、浮点数、以及其他类型的数据等存放到字符数组中,相当于是一个万能的容器吧~