• stringstream的基本用法


    stringstream是字符串流。它将流与存储在内存中的string对象绑定起来。

    在多种数据类型之间实现自动格式化。

    1 stringstream对象的使用

     1 #include <sstream>
     2 #include <iostream>
     3 using namespace std;
     4 int main()
     5 {
     6     string line,word;
     7     while(getline(cin,line))  //从屏幕输入字符串
     8     {
     9         stringstream stream(line);//定义了一个字符串流
    10         cout<<stream.str()<<endl;
    11         while(stream>>word)  
    12         {
    13             cout<<word<<endl;
    14         }
    15     }
    16     return 0;
    17 }
    stringstream使用代码示例

    输入:shanghai no1 school 1989

    输出:shanghi no1 school 1989

          shanghai

        no1

        school

        1989

    2stringstream提供的转换和格式化

     1 #include <sstream>
     2 #include <iostream>
     3 using namespace std;
     4 int main()
     5 {
     6     int val1 = 512,val2 = 1024;
     7     stringstream ss;
     8 
     9     //将int类型读入ss,变为string类型
    10     ss<<"val1: "<<val1<<endl //"vall:"此处有空格,字符串流是通过空格判断一个字符串的结束
    11       <<"val2: "<<val2<<endl;
    12     cout<<ss.str();
    13     string dump;
    14     int a,b;
    15 
    16     //提取512,1024保存为int类型。当然,如果a,b声明为string类型
    17     //那么这两个字面值常量相应保存为string类型
    18     ss>>dump>>a>>dump>>b;
    19     cout<<a<<" "<<b<<endl;
    20     return 0;
    21 }
    View Code

    输出为:val1: 512

        val2: 1024

        512 1024

    3其他注意

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

    #include <cstdlib>
    #include <sstream>
    #include <iostream>
    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;
        return 0;
    }
    View Code

    输出:

    size of stream = 19

    s: shanghai

    size of stream = 0

  • 相关阅读:
    ostringstream的使用方法
    《算法导论》为什么经典
    JAVA数组的定义及用法
    具体解释Android中AsyncTask的使用
    POJ 1207 The 3n + 1 problem
    图像切割之(五)活动轮廓模型之Snake模型简单介绍
    RapeLay(电车之狼R)的结局介绍 (隐藏结局攻略)
    线程安全和线程不安全理解
    atitit...触发器机制 ltrigger mechanism sumup .的总结O8f
    winrar3.7-winrar4.0的注冊码
  • 原文地址:https://www.cnblogs.com/baoxiaofei/p/4295931.html
Copyright © 2020-2023  润新知