参考原文地址:https://blog.csdn.net/liitdar/article/details/82598039
本文主要介绍 C++ 中 stringstream 类的常见用法。
这里展示一个代码示例,该示例介绍了将 int 类型转换为 string 类型的过程。示例代码如下(实测):
#include
#include
#include
using namespace std;
int main() {
stringstream sstream;
string strResult;
int nValue = 1000;
sstream << nValue;//将int类型的值放入输入流中
sstream >> strResult;//从sstream中抽取前面插入的int类型的值赋值给string类的strResult
cout << "strResult is " << strResult <
编译并执行上述代码,结果如下:
/home/yhj/测试程序/数据结构与算法/stringstream_l/cmake-build-debug/stringstream_l
strResult is 1000
1000
Process finished with exit code 0
本示例介绍在 stringstream 中存放多个字符串,实现多个字符串拼接的目的(其实完全可以使用 string 类实现),同时,介绍 stringstream 的清空方法。
示例代码如下:
#include
#include
#include
using namespace std;
int main() {
stringstream sstream;
sstream << "first" << " " << "string,";//将多个字符串放入sstream中
sstream << "second string";
cout << "strResult is:" << sstream.str() << endl;
sstream.str("");//清空sstream
sstream << "third string";
cout << "After clear,strResult is: " << sstream.str() <
编译并执行上述代码,结果如下:
/home/yhj/测试程序/数据结构与算法/stringstream_l/cmake-build-debug/stringstream_l
strResult is:first string,second string
After clear,strResult is: third string
Process finished with exit code 0
从上述代码执行结果能够知道:
清空 stringstream 有两种方法:clear() 方法以及 str("") 方法,这两种方法有不同的使用场景。str("") 方法的使用场景,在上面的示例中已经介绍了,这里介绍 clear() 方法的使用场景。示例代码如下:
#include
#include
#include
using namespace std;
int main() {
stringstream sstream;
int first,second;
sstream << "456";//插入字符串
sstream >> first;//转化为int类型
cout << first <> second;
cout << second << endl;
return 0;
}
编译并执行上述代码,结果如下:
/home/yhj/测试程序/数据结构与算法/stringstream_l/cmake-build-debug/stringstream_l
456
1
Process finished with exit code 0
注意:在本示例涉及的场景下(多次数据类型转换),必须使用 clear() 方法清空 stringstream,不使用 clear() 方法或使用 str("") 方法,都不能得到数据类型转换的正确结果。
istringstream:执行c++风格的串流的输入操作。可以绑定一行字符串,然后以空格为分隔符将该行分隔开来。
#include
#include
using namespace std;
int main()
{
string str, line;
while(getline(cin, line))
{
istringstream stream(line);
while(stream>>str)
cout<
测试:
输入:i am a boy
输出:
i
am
a
boy