zoukankan      html  css  js  c++  java
  • stringstream的用法

    stringstream的基本用法

    stringstream是字符串流。它将流与存储在内存中的string对象绑定起来。
    在多种数据类型之间实现自动格式化。

    1.stringstream对象的使用

    #include<sstream>
    #include<iostream>
    using namespace std;
    int main()
    {
    string line,word;
    while(getline(cin,line))
    {
    stringstream stream(line);
    cout<<stream.str()<<endl;
    while(stream>>word){cout<<word<<endl;}
    }
    return 0;
    }

    输入:shanghai no1 school 1989
    输出:shanghi no1 school 1989
       shanghai
        no1
        school
        1989

    2.stringstream提供的转换和格式化
    程序:

    #include<sstream>
    #include<iostream>
    using namespace std;
    int main()
    {
    int val1 = 512,val2 =1024;
    stringstream ss;
    ss<<"val1: "<<val1<<endl //“val1: "此处有空格,字符串流是通过空格判断一个字符串的结束
         <<"val2: "<<val2<<endl;
    cout<<ss.str();

    string dump;
    int a,b;
    ss>>dump>>a
         >>dump>>b;
    cout<<a<<" "<<b<<endl;
    return 0;
    }

    输出为:val1: 512
        val2: 1024
        512 1024
    第一处黑体字部分:将int类型读入ss,变为string类型
    第二处黑体字部分:提取512,1024保存为int类型。当然,如果a,b声明为string类型,那么这两个字面值常量相应保存为string类型

    3.其他注意
    stringstream不会主动释放内存(或许是为了提高效率),但如果要在程序中用同一个流,反复读写大量的数据,将会造成大量的内存消 耗,因些这时候,需要适时地清除一下缓冲 (用 stream.str("") )

    #include <cstdlib>
    #include<iostream>
    #include<sstream>
    using namespace std;
    int main()
    {
    stringstream ss;
    string s;
    ss<<"shanghai no1 school";
    ss>>s;
    cout<<"size of stream = "<<ss.str().length()<<endl;
    cout<<"s: "<<s<<endl;
    ss.str("");
    cout<<"size of stream = "<<ss.str().length()<<endl;
    }

    输出:
    size of stream = 19
    s: shanghai
    size of stream = 0

  • 相关阅读:
    linux系统权限管理拓展:特殊权限
    Linux系统对文件及目录的权限管理(chmod、chown)
    linux 用户、用户组及相关命令(useradd 、passwd、userdel 、groupadd 、groupdel、usermod 、gpasswd 、 id、su)
    Tiny4412学习杂记
    Android 使用技巧
    Tiny4412 LED 硬件服务
    Android M AudioPolicy 分析
    qt程序异常结束crashed
    source in sight 删除工程
    qt数据库sql语句使用c++中的变量
  • 原文地址:https://www.cnblogs.com/Staceyacm/p/10782137.html
Copyright © 2011-2022 走看看