C++中sstream类

C++中sstream类C++中的sstream类用来操作string,可以向string中写入数据,也可以从string中读取数据。该类在sstream头文件中定义。该类可以分为istringstream和ostringstream,其中istreamstream用来从string中读取数据;而ostringstream用来向string中写入数据。1istringstream1.1定义istringstream类的对象可以使用两种方法定义istringstream类的对象istringstreamiss.

大家好,又见面了,我是你们的朋友全栈君。

C++中的sstream类用来操作string,可以向string中写入数据,也可以从string中读取数据。该类在sstream头文件中定义。该类可以分为istringstream和ostringstream,其中istreamstream用来从string中读取数据;而ostringstream用来向string中写入数据。

1 istringstream

1.1 定义istringstream类的对象

可以使用两种方法定义istringstream类的对象

istringstream iss;

或者

istringstream iss("192 168 1 123");

其中,第一种方法没有与string关联,第二种方法保存了字符串”192 168 1 123”的拷贝。

1.2 使用istringstream类的对象读取数据

将istringstream类的对象iis按照“1.1 定义istringstream类的对象”中提到的第二种方式定义,之后通过如下代码读取iss中的数据。

for (int i = 0; i < 4; ++i)
{
  int val;
  iss >> val;
}

每次循环后,val的值分别是192,168,1和123。

1.3 istringstream类的str()函数

该函数有两种使用方法

string str() const;
void str (const string& s);

其中,第一种方法返回与istringstream对象相关联的string的内容;第二种方法是将istringstream对象与string 关联,即设置istringstream对象的内容。

可以使用“1.1 定义istringstream类的对象”中提到的第一种方法定义对象,之后使用str()函数的第二种方法定义istringstream对象的内容。

string strvalues = "192 168 1 123";
iss.str(strvalues);

之后,按照“1.2使用istringstream类的对象读取数据”提到的代码,也可以读取string中的内容。

2 ostringstream

ostringstream类用于向string中写入数据。其定义方式与istringstream相同。

ostringstream oss;
oss << "Hello World" << 123;
string s = oss.str();

以上代码中,将字符串“Hello World”和整型123写入到与ostringstream的对象oss相关联的string中。之后通过str()函数将与其关联的string的内容赋值给字符串s,此时s的值是“Hello World123”。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136221.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计算机操作系统(第3版)课后习题答案(完整版)

    计算机操作系统(第3版)课后习题答案(完整版)第一章1.设计现代OS的主要目标是什么?答:(1)有效性(2)方便性(3)可扩充性(4)开放性2.OS的作用可表现在哪几个方面?答:(1)OS作为用户与计算机硬件系统之间的接口(2)OS作为计算机系统资源的管理者(3)OS实现了对计算机资源的抽象3.为什么说OS实现了对计算机资源的抽象?答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第

    2022年5月30日
    143
  • Macbook air/pro m1 恢复出厂设置小记

    Macbook air/pro m1 恢复出厂设置小记今日手抽,想恢复下出厂,看了官方教程https://support.apple.com/zh-cn/HT211983够,按照说明一步一步进行,然鹅~在正确抹掉2遍开始选择重装bigsur时发现无法找到硬盘。经摸索,解决方法:再次重启进去恢复模式,选择磁盘工具,点击显示所有卷宗,这时发现硬盘处于非格式化状态,因而无法被安装程序识别,(点击+号新建afps分区时会提示无效的arg,无法新建分区)应选择抹除,来重新抹盘,即可解决问题。返回到恢复界面,就能发现硬盘并正常重装。注:这个问题用u盘进行引导安装时也一

    2022年6月17日
    240
  • javaweb-springboot-2-73

    javaweb-springboot-2-73

    2021年5月18日
    131
  • 数据仓库(四)之ETL开发

    数据仓库(四)之ETL开发 概述 ETL是数据仓库的后台,主要包含抽取、清洗、规范化、提交四个步骤,传统数据仓库一般分为四层模型。               分层的作用                                      STG层  在维度建模阶段已经确定了源系统,而且对源系统进行了…

    2022年6月13日
    34
  • describing people听力原文_你美国也配谈道德

    describing people听力原文_你美国也配谈道德  美国著名公司PeopleSoft,名字也代表旗下的一系列ERP产品,一系列的解决方案,有一整套的开发工具,04年被oracle以103亿美元收购。 在某银行的CRM,EPM项目中有幸认识Michaelzhou,非常感谢他的帮助,使我认识到底什么才是PeopleSoft,暂且不说PeopleSoft的产品有多好,本文仅讨论PeopleSoft的开发模式。 

    2025年6月9日
    3
  • 在线作图|在线做完整的Lefse分析

    在线作图|在线做完整的Lefse分析前言今天小编给大家介绍的是TUTU(https://www.cloudtutu.com/)网站上新添的Lefse分析,即LDAEffectSize分析。咱之前有上过这个分析(lefse),但是只能画出LDA值柱状图,今天新添的工具lefse2基本可以实现完整的分析内容,包括LDA值柱状图、物种分类分支图、组间丰度柱状图等等。Lefse分析文献应用举例:Fig.7ThemaintaxaofbacteriathatweredifferentinHMGvs.SMGvs.F

    2022年4月29日
    56

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号