摘要:本文主要向大家介绍了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+频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号