简介:
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++风格的串流控制 ,C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。 istringstream类用于执行C++...
//数据流输入/输出 #include <limits.h> //定义各种数据类型最值常量 #include <locale.h> //定义本地化函数 #include <math.h> //定义数学函数 #include <stdio.h> //定义输入/...
以下是对C++标准库中sstream与strstream的区别进行了详细的分析介绍,需要的朋友可以过来参考下
输入输出流操作:iomanip、sstream 字符处理:cctype、cwctype 局部化:locale 这只是一小部分C++标准库头文件,实际上C++标准库还有更多的头文件,涵盖了各种不同的功能和特性。你可以根据具体的需求在C++标准库中...
<sstream> 支持字符串的流输入输出 <fstream> 支持文件的流输入输出 <iosfwd> 为输入输出对象提供向前的声明 <streambuf> 支持流输入和输出的缓存 <cstdio> 为标准流提供C样式的输入和输出 <cwchar> 支持多字节...
纯C语言实现字符串拆分操作,把字符串拆分成字符串数组,然后再输出。 使用sstream方法,作为底层驱动操作实现非常方便。
#include <iostream.h> //数据流输入/输出 #include <limits.h> //定义各种数据类型最值常量 #include <locale.h> //定义本地化函数 #include <math.h> //定义数学函数 #include <stdio.h> //定义输入/输出...
如果需要根据单一字符分割单词,直接用getline读取就好了,很简单 #include #include #include #include <sstream> using namespace std; int main() { string words; vector<string> results; ...
《從新手到高手C++全方位學習》適合於從未學習過任何編程語言的新手,以及學習C++多年,仍舊不能融會貫通的讀者,對於正在使用C++進行開發的程序員也有很好的參考價值。 光盤提供的視頻教程,包含了第1章到第17章...
在学习c++中string相关基本用法的时候,发现了sstream的istringstream[1]可以将字符串类似于控制台的方式进行输入,而实质上这个行为等同于利用空格将一个字符串进行了分割,于是考虑到可以利用这个特性来实现c++...
C语言头文件 SSTREAMC语言头文件 SSTREAMC语言头文件 SSTREAMC语言头文件 SSTREAMC语言头文件 SSTREAMC语言头文件 SSTREAMC语言头文件 SSTREAMC语言头文件 SSTREAMC语言头文件 SSTREAMC语言头文件 SSTREAMC语言...
它提供了C++标准中定义的类和函数的实现,包括标准模板库(STL)、输入/输出流、字符串、容器、算法等。 libstdc++ API是libstdc++库提供的接口,它包括了所有的头文件和函数,供程序员在编写C++程序时使用。使用...
纯C语言将字符串按照分隔符解析成字符串数组,C语言模式下采用SStream和getline实现解析方式,方法简单明了
#include <sstream> #include using namespace std; int main() { int a,b; cin>>a>>b; int c; c = a + b; int temp = abs(c); std::string s; std::stringstream out; out ; s = out.str(); int l; l = ...
#include <sstream> #include #include using namespace std; //从文件读入到string里 string readFileIntoString(char * filename) { ifstream ifile(filename); //将文件读入到ostringstream对象buf中 ...
#include <sstream> #include <iomanip> B、添加命名空间 using namespace std; C、添加函数 /* 函数名:round /* 函数功能:数据精度计算函数 /* 函数参数:float src:待求精度数 int bits:精度(0表示保留...
#include<iostream>#include<vector>#include #include<sstream>using namespace std;
再使用整型转string的时候感觉有点棘手,因为itoa不是标准C里面的,而且即便是有itoa,其他类型转string不是很方便。后来去网上找了一下,发现有一个好方法: 代码如下:#include <iostream>#include <sstream>#...