C/C++知识点头文件系列(六)——sstream
小标 2018-06-15 来源 : 阅读 731 评论 0

摘要:本文主要向大家介绍了C/C++知识点头文件系列的sstream,通过具体的实例让大家了解,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点头文件系列的sstream,通过具体的实例让大家了解,希望对大家学习C/C++知识点有所帮助。

1. 说明

  之前介绍过“stdio.h”中sprintf来格式化完成类型转换,可以实现从其它类型转换为字符数组数据。但是这个函数有它本身的限制,不仅是只能其它格式转换为字符数组类型,而且会受限于格式符使用,容易带来意想不到的错误。而本次介绍的“sstream”头文件库可以对类型转换简化很多,并且各种类型之间都可以通过sstream中类实例化对象作为中介来完成相互转换。你可以将其看成是“iostream”中流输入输出功能类似,一个是从终端读出写入,而另一个是从sstream库中类实例化的对象中读出写入。 
  “sstream”库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入/输出操作。所以一般情况下我们直接通过stringstream实例化对象来即可,同时可以完成输入和输出。

2. 笔试必掌握内容

  “sstream”头文件我们只需清楚熟悉怎样来完成传递作用,从而能够向该类对象中读入和写入流数据,完成类型任意转换即可。另外使用前一定记住要标明命名空间是标准库std。 
  下面直接通过程序来探讨它的使用。

#include <iostream>#include <sstream>#include <string>using namespace std;int main()
{
    char nzArr[10] = "aaa";
    string str1    = nzArr;
    int nNum       = 1111;
    string str2("12234");
    stringstream strStream(str2);//实例化对象并且初始化
    strStream.clear();           //每次再次调用无需重新定义stringstream类一个对象,只要清空再使用即可
    strStream << nNum;
    strStream >> nzArr;
    strStream >> str1;
    return 0;
}


  ①. 先通过stringstream类实例化一个对象,并且可以通过任何类型直接初始化赋初值。 
  ②. clear()类方法可以清空类实例化的对象,这样就可以保证每次使用,无需重新实例化一个对象。此外clear()也是为了保证实对象再赋值引起不必要的错误。例如:

char nzArr[] ="1111";char nzBuf[10];stringstream stream(nzArr);

stream << "22";

stream >> nzBuf; //nzBuf结果并不仅是“22”,而且是“2211”

  ③. stringstream类实例化对象可以直接通过提取操作符“>>”、“<<”来完成对该对象的读取和写入。另外流操作没有类型限制,包括bool布尔类型,它的提取可以对任何类型完成。

stringstream sRel;

stream << true;      //插入bool值

stream >> sRel;      //提取出intcout << sRel << endl;//输出为1

  它在IT笔试中使用可以参考这篇博文的介绍:

//blog.csdn.net/fx677588/article/details/52713623 华为2017校园招聘编程题——去除一段话字符串中重复单词

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程