安利一下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的主要内容,如果未能解决你的问题,请参考以下文章

安利纽崔莱产品可以这样用!

安利一个网络服务——Google Drive

安利:鲲鹏920CentOS7部署ansible

安利:鲲鹏920CentOS7部署ansible

安利自己写的easy-clipboard库

技术干货丨网页基础篇之安利一款开发工具