当前位置:   article > 正文

stringstream实用用法总结_stringstream用法

stringstream用法

简介:

    <sstream> 定义了三个类:istringstream、ostringstream 和 stringstream,分别用来进行流的输入、输出和输入输出操作。本文以 stringstream 为主,介绍流的输入和输出操作。

        <sstream> 主要用来进行数据类型转换,由于 <sstream> 使用 string 对象来代替字符数组(snprintf 方式),避免了缓冲区溢出的危险;而且,因为传入参数和目标对象的类型会被自动推导出来,所以不存在错误的格式化符号的问题。简单说,相比 C 编程语言库的数据类型转换,<sstream> 更加安全、自动和直接.

常用的函数:

stringstream.str();转化为字符串;所以可以用来输出stringstream

stringstream.str("")让流清空.

自动实现数据类型的转换:
 

在 C++ 中,字符串流(stringstream)是一种特殊的流类,它允许将字符串作为输入和输出流进行处理。字符串流提供了一种方便的方式,可以将字符串与其他基本类型进行转换、拼接、解析等操作。

  1. string s="aaa";
  2. stringstream line;
  3. line<< s;
  4. line << 1;//int
  5. line<<0.12; //float
  6. line<<'b'; //char
  7. cout<<line.str()<<endl;
  8. //结果为:aaa10.12b

 两种构造方式:

  1. string s="aaa";
  2. //1.
  3. stringstream line;
  4. line<< s;
  5. //2.
  6. stringstream line(s);

区别在于:第二种方式在输入到stingstream的时候,之前的s会被覆盖;
所以一帮使用第一种构造方式.
比如:

        

  1. string s="aaa";
  2. //1.
  3. stringstream line;
  4. line<< s;
  5. //2.
  6. stringstream line(s);
  7. line << 1;
  8. //第一种的结果是:aaa1;
  9. //第二种的结果是:1aa;

 分割字符串:
stringstream 默认是以空格来分割字符串的,利用 stringstream 去除字符串空格非常方便:

  1. for(int i=1;i<=n;i++)
  2. {
  3. getline(cin,s);//读入一整行
  4. stringstream line;
  5. line << s;//s输入到流中
  6. while(line>>a[cnt])cnt++;//从流中输出到数组中,这样就过滤掉了空格
  7. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/736001
推荐阅读
  

闽ICP备14008679号