安利一下stringstream
Posted heanda
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安利一下stringstream相关的知识,希望对你有一定的参考价值。
stringstream能干什么
处理毒瘤输入数据
比如这个题
在输入的时候有很多问题,如果用scanf输入char型字符串,那么不好用map判断,并且读入整行判断换行会很麻烦
如果选择用string型数组处理数据,除了用getline,不然很难判断换行
然而stringstream可以完美的解决这个问题
//这是上面介绍的第一个用法 ,PS: 输出放下面了(雾
//解释一下——
//stringstream是一个输入输出流,它可以模拟cin和cout的操作
//你可以在流里面存东西,也可以从里面把东西拿出来
#include <iostream>
#include <sstream>
using namespace std;
int main()
stringstream ss;
string a;
string b = "China";
string c;
string d;
string e;
//"----------下面是stringstream的各种操作-----------"
// 1.存入
ss << b;//给 ss 流传东西
ss >> a;//把 ss 流的东西传出去
cout << "a: " << a << endl;
ss >> c;
cout << "c: " << c << endl;//会发现c没有输出任何东西,因为 ss 流里面的字符串已经传给 a 了
//另外的存入方法
ss.clear();//用完必须清理一下
ss.str("heanda");//括号里面也可以是string型变量
ss >> d;
cout<< "d: " << d << endl;
ss.clear();
//接下来就看看stringstream存入输出的用法
ss.str("had is chinese");
while(ss >> e) cout << "e: " << e << endl;//它会把空格作为一个断点,一个一个传出去,所以可以一个一个取
return 0;
/*
输出:
a: China
c:
d: heanda
e: had
e: is
e: chinese
*/
很方便的类型转换
除了处理毒瘤数据,它还可以进行一些类型转换
1.数字型 ——> string字符串
2.string字符 ——> 数字型
以上是关于安利一下stringstream的主要内容,如果未能解决你的问题,请参考以下文章