关于实用的 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字符 ——> 数字型

#include <iostream>
#include <cstdio>
#include <sstream>
using namespace std;
int main()
{
    double a = 1.00;
    float b = 3.141592;
    int c;
    stringstream ss;

    //1.将string丢给成int

    string s = "1234";
    ss.str(s);
    ss >> c;

    cout << "string->int: " << c << endl;

    ss.clear();
    ss.str("");

    //2.将小数丢给stringstream
    ss << a;
    string s2;
    ss >> c;

    cout << "double -> int: " << c << endl;

    ss.clear();
    ss.str("");

    //3.将小数丢给小数
    ss.setf(ios::fixed);
    ss.precision(2);
    ss << b;
    double number;
    ss >> number;

    cout << "string->double 并且控制小数位数: " << number << endl;

    ss.clear();
    ss.str("");

    //4.数字->字符串
    int num = 2003;
    ss << num;

    string num_s;

    ss >> num_s;

    cout << "int -> string: " << num_s << endl;

    /*// 输出在这
    string->int: 1234
    double -> int: 1
    string->double 并且控制小数位数: 3.14
    int -> string: 2003
    */

    return 0;
}

安利一下stringstream的更多相关文章

  1. stringstream的基本用法

    原帖地址:https://zhidao.baidu.com/question/580048330.htmlstringstream是字符串流.它将流与存储在内存中的string对象绑定起来.在多种数据 ...

  2. c++ stringstream(老好用了)

    前言: 以前没有接触过stringstream这个类的时候,常用的字符串和数字转换函数就是sscanf和sprintf函数.开始的时候就觉得这两个函数应经很叼了,但是毕竟是属于c的.c++中引入了流的 ...

  3. istringstream、ostringstream、stringstream 类简介

    本文系转载,原文链接:http://www.cnblogs.com/gamesky/archive/2013/01/09/2852356.html ,如有侵权,请联系我:534624117@qq.co ...

  4. 安利一个MVC的好东西,RazorGenerator.MsBuild,可以自动编译cshtml文件

    在传统的asp.net webForm 开发里,在发布时,如果选择预编译,就会自动将所有的aspx 文件编译,在发布后的目录里,就看不到aspx的源代码了,同时因为是预编译的,所以每个页面打开速度都挺 ...

  5. 【分享】学长的安利来了~~O(∩_∩)O

    前言:应栋哥要求,学长把演讲稿稍微整理下发布出来,这可以算是一篇安利文,也可以说是一篇经历文吧.作为一个确确实实从软工里收获到挺多东西的过来人,学长希望可以通过学长的经历来让你们对软工更加期待. 安利 ...

  6. stringstream操纵string小总结

    1 split字符串 之前在用C#写代码的时候,用过split函数,可以把一个字符串根据某个分隔符分成若干个字符串数组.在用C++操纵字符串的时候,我一直使用很笨的遍历的方法.为此,我问候过很多次C+ ...

  7. stringstream的用法【转】

    [本文来自]http://www.builder.com.cn/2003/0304/83250.shtmlhttp://www.cppblog.com/alantop/archive/2007/07/ ...

  8. C++ stringstream

    C++ 引入了ostringstream.istringstream.stringstream这三个类,这三个类包含在sstream.h头文件中.三个类中 1)istringstream类用于执行C+ ...

  9. 如何优雅的写一篇安利文-以Sugar ORM为例

    前言 我最近喜欢把写的十分优美的技术文章叫做安利文.首先,文章必须是原创而非软广:其次,阅读之后不仅能快速吸纳技术要点并入门开发,还能感同身受的体会作者热情洋溢的赞美和急于分享心得体验的心情,让人感觉 ...

随机推荐

  1. R获取指定GO term和KEGG pathway的gene list基因集

    clusterProfiler没有显性的接口,但是可以直接扣取clusterProfiler里的函数. 核心函数就是get_GO_data GO_DATA <- get_GO_data(&quo ...

  2. linux下查看指定进程的所有连接信息(转)

    定位某个进程的网络故障时经常需要用到的一个功能就是查找所有连接的信息.通常查找某个端口的连接信息使用 ss 或者 netstat 可以轻松拿到,如果是主动与别的机器建立的连接信息则可以通过 lsof ...

  3. Socket: Java Socket 几个重要的TCP/IP选项解析(转)

    Socket选择可以指定Socket类发送和接受数据的方式.在JDK1.4中共有8个Socket选择可以设置.这8个选项都定义在java.net.SocketOptions接口中.定义如下: publ ...

  4. ByteBuffer: 图解ByteBuffer(转)

    ByteBuffer前前后后看过好几次了,实际使用也用了一些,总觉得条理不够清晰. <程序员的思维修炼>一本书讲过,主动学习,要比单纯看资料效果来的好,所以干脆写个详细点的文章来记录一下. ...

  5. 新概念英语第二册Lesson5:No wrong numbers

    Lesson 5 No wrong numbers 无错号之虞 First listen and then answer the question. 听录音,然后回答以下问题. What does ' ...

  6. python3 selenium模块Chrome设置代理ip的实现

    python3 selenium模块Chrome设置代理ip的实现 selenium模块Chrome设置代理ip的实现代码: from selenium import webdriver chrome ...

  7. 网站安全统一监测平台(WebPecker)

    网站安全统一监测平台(WebPecker)_智恒科技http://www.zhihengit.com/html/pro/chanpinfenlei1/2016/0511/135.html [SQL注入 ...

  8. k8s之磁盘挂载持久化

  9. asp设置cookies过期时间

    Response.Cookies("user_name").Expires=Date+1 '指定cookie保存时间 保留COOKIES一个小时 Response.Cookies( ...

  10. ES6深入浅出-3 三个点运算 & 新版字符串-2. 新版字符串

    这是以前的字符串..双引号,单引号.毫无区别 有时候在字符串里面写一些标签. 排版不好看 我就想回车一下.这样写虽然是好看.但是语法就报错了.es5的字符串不支持换行.我只想是想让它排版的好看一点. ...