`
bcyy
  • 浏览: 1824346 次
文章分类
社区版块
存档分类
最新评论

C++ sstream 字符数据流的使用

 
阅读更多

简介:

1 iostream支持程序和终端之间的I/O;

2 fstream支持程序和文件之间的I/O;

3 sstream支持程序和字符对象之间的I/O


sstream使用:

1 istringstream只允许读出字符,可以使用.str(s)初始化,不允许使用<<操作符

int main() 
{
	string s = "-3745 djjkf this ia s very good example";
	istringstream ss;
	ss.str(s);
	string sout;
	while (ss>>sout)
		cout<<sout<<endl;
	system("pause"); 
	return 0;
}




2 ostringstream只允许读入信息,使用<<,不允许使用>>操作,也可以使用.str(s)初始化。

注意:

1) 使用了str(s)初始化,那么当前读入的位置不变,继续使用<<就会覆盖str()初始化的内容

2) 重新使用str(s)也会覆盖前面所有内容

int main() 
{
	string s = "-3745 djjkf this ia s very good example";
	ostringstream ss;
	ss.str(s);
	string a = "HELLOWORLD";
	ss<<a;
	ss<<a;
	cout<<ss.str();
	system("pause"); 
	return 0;
}



3 stringstream兼具了前面两者的功能和特性

注意:

1 连续操作输入数据,需要使用clear()清空输入状态;

注意不是清空内容,是允许继续输入的意思,原来的内容还可以使用.str()读出。网上有人争论这个问题,其实也没什么好研究的,多动手,不能光凭手册理解判断。

2 要想实现真正清空,并重新输入数据需要使用.str("")和.clear()配合使用

int main() 
{
	string s = "-3745 djjkf this ia s very good example";
	stringstream ss;
	string a = "856";
	ss<<a;
	int i = 100;
	ss>>i;
	cout<<i<<endl;
	ss.clear();
	ss<<"000";
	cout<<ss.str()<<endl;

	ss.str("");
	ss.clear();
	ss<<"123";
	int j;
	ss>>j;
	cout<<j<<endl;
	cout<<ss.str();
	system("pause"); 
	return 0;
}



暂时没发现STL里面有好用的分隔符分隔函数,好像要使用strtok函数或者boost 的split,感觉和自己写函数实现没多大区别,方便不到哪里去。



分享到:
评论

相关推荐

    C++的sstream标准库详细介绍

    C++的sstream标准库介绍 接下来我们继续看一下C++风格的串流控制 ,C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。 istringstream类用于执行C++...

    本人精心收集,c++头文件一览

     //数据流输入/输出 #include &lt;limits.h&gt; //定义各种数据类型最值常量 #include &lt;locale.h&gt; //定义本地化函数 #include &lt;math.h&gt; //定义数学函数 #include &lt;stdio.h&gt; //定义输入/...

    C++标准库中sstream与strstream的区别详细解析

    以下是对C++标准库中sstream与strstream的区别进行了详细的分析介绍,需要的朋友可以过来参考下

    C++头文件大全.pdf

    输入输出流操作:iomanip、sstream 字符处理:cctype、cwctype 局部化:locale 这只是一小部分C++标准库头文件,实际上C++标准库还有更多的头文件,涵盖了各种不同的功能和特性。你可以根据具体的需求在C++标准库中...

    C++标准库stl

    &lt;sstream&gt; 支持字符串的流输入输出 &lt;fstream&gt; 支持文件的流输入输出 &lt;iosfwd&gt; 为输入输出对象提供向前的声明 &lt;streambuf&gt; 支持流输入和输出的缓存 &lt;cstdio&gt; 为标准流提供C样式的输入和输出 &lt;cwchar&gt; 支持多字节...

    C语言字符串拆分成字符串数组.c

    纯C语言实现字符串拆分操作,把字符串拆分成字符串数组,然后再输出。 使用sstream方法,作为底层驱动操作实现非常方便。

    C和C++头文件对比一览

    #include &lt;iostream.h&gt; //数据流输入/输出 #include &lt;limits.h&gt; //定义各种数据类型最值常量 #include &lt;locale.h&gt; //定义本地化函数 #include &lt;math.h&gt; //定义数学函数 #include &lt;stdio.h&gt; //定义输入/输出...

    c++如何分割字符串示例代码

    如果需要根据单一字符分割单词,直接用getline读取就好了,很简单 #include #include #include #include &lt;sstream&gt; using namespace std; int main() { string words; vector&lt;string&gt; results; ...

    從新手到高手C++全方位學習

    《從新手到高手C++全方位學習》適合於從未學習過任何編程語言的新手,以及學習C++多年,仍舊不能融會貫通的讀者,對於正在使用C++進行開發的程序員也有很好的參考價值。 光盤提供的視頻教程,包含了第1章到第17章...

    如何在c++中实现字符串分割函数split详解

    在学习c++中string相关基本用法的时候,发现了sstream的istringstream[1]可以将字符串类似于控制台的方式进行输入,而实质上这个行为等同于利用空格将一个字符串进行了分割,于是考虑到可以利用这个特性来实现c++...

    C语言头文件 SSTREAM

    C语言头文件 SSTREAMC语言头文件 SSTREAMC语言头文件 SSTREAMC语言头文件 SSTREAMC语言头文件 SSTREAMC语言头文件 SSTREAMC语言头文件 SSTREAMC语言头文件 SSTREAMC语言头文件 SSTREAMC语言头文件 SSTREAMC语言...

    libstdc++ API手册

    它提供了C++标准中定义的类和函数的实现,包括标准模板库(STL)、输入/输出流、字符串、容器、算法等。 libstdc++ API是libstdc++库提供的接口,它包括了所有的头文件和函数,供程序员在编写C++程序时使用。使用...

    字符串解析成字符串数组.cpp

    纯C语言将字符串按照分隔符解析成字符串数组,C语言模式下采用SStream和getline实现解析方式,方法简单明了

    pat 1001 c++代码

    #include &lt;sstream&gt; #include using namespace std; int main() { int a,b; cin&gt;&gt;a&gt;&gt;b; int c; c = a + b; int temp = abs(c); std::string s; std::stringstream out; out ; s = out.str(); int l; l = ...

    C++ 读文件 将文件内容读入到字符串string中的方法

    #include &lt;sstream&gt; #include #include using namespace std; //从文件读入到string里 string readFileIntoString(char * filename) { ifstream ifile&#40;filename&#41;; //将文件读入到ostringstream对象buf中 ...

    C++数据精度问题(对浮点数保存指定位小数)

    #include &lt;sstream&gt; #include &lt;iomanip&gt; B、添加命名空间 using namespace std; C、添加函数 /* 函数名:round /* 函数功能:数据精度计算函数 /* 函数参数:float src:待求精度数 int bits:精度(0表示保留...

    字符串匹配程序

    #include&lt;iostream&gt;#include&lt;vector&gt;#include #include&lt;sstream&gt;using namespace std;

    C++如何通过ostringstream实现任意类型转string

    再使用整型转string的时候感觉有点棘手,因为itoa不是标准C里面的,而且即便是有itoa,其他类型转string不是很方便。后来去网上找了一下,发现有一个好方法: 代码如下:#include &lt;iostream&gt;#include &lt;sstream&gt;#...

Global site tag (gtag.js) - Google Analytics