当前位置:   article > 正文

c++ stringstream_c++ stringstream清空

c++ stringstream清空

实验结论:
clear()用于清空stringstream内容
str(“”)用于释放stringstream内存
最好两个一起使用

#include <sstream>
#include <iostream>
 
using namespace std;

/*
    使用stringstream进行数据转型时,必须用clear()清空stringstream的内容,但只用clear()并不释放内存,在clear()后使用str("")可以释放其内存资源
    实验结论:
    clear()用于清空stringstream内容
    str("")用于释放stringstream内存
*/

int main()
{
    stringstream sstream;
    int first, second;
    
    // 插入字符串
    sstream << "456";
    // 转换为int类型
    sstream >> first;
    // cout << "used clear(): " << first << endl; // 456
    // cout << "unused clear(): " << first << endl;  // 456
    // cout << "used .str(''): " << first << endl;  // 456
 
    cout << "used .str(): Size of stream = " << sstream.str().length() << endl; // 3


    // 在进行多次类型转换前,必须先运行clear()
    sstream.clear();
    sstream.str("");
    // cout << "Unused .str(): Size of stream = " << sstream.str().length() << endl; // 3
    cout << "used .str(): Size of stream = " << sstream.str().length() << endl;  // 0
    

    // 插入bool值
    // sstream << true;
    sstream << "789";
    // 转换为int类型
    sstream >> second;
    // cout << "Unused .str():Size of stream = " << sstream.str().length() << endl; // 6
    cout << "used .str():Size of stream = " << sstream.str().length() << endl; // 3

    // cout << "used clear(): " << second << endl;  // 1
    // cout << "unused clear(): " << second << endl;  // 216572660
    // cout << "used .str(''): " << second << endl;  // 216849752

    system("pause");
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/736019
推荐阅读
  

闽ICP备14008679号