c++ stringstream ss()

2023-05-16

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

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

// swapping ostringstream objects
#include <string>       // std::string
#include <iostream>     // std::cout
#include <sstream>      // std::stringstream

int main () {

  std::stringstream ss;

  ss << 100 << ' ' << 200;

  int foo,bar;
  ss >> foo >> bar;

  std::cout << "foo: " << foo << '\n';
  std::cout << "bar: " << bar << '\n';

  return 0;
}
 Edit & Run

Output:
foo: 100
bar: 200

一、从string对象str中读取字符。遇空格结束

下面代码增加while循环,能将str全部单词打印出来

#include <iostream>
#include <sstream>

using namespace std;

int main()
{
	string str = "hello world";
	cout << str << endl;
	
	stringstream ss(str); //将str复制到ss
	string abc;
	while(ss >> abc) //相当于输入一个个的单词
	{
		cout << abc <<endl;
	}

	return 0;
}

OUTPUT:
在这里插入图片描述
二、支持C风格的串流的输入输出操作

#include <iostream>
#include <sstream>

using namespace std;

int main()
{
	int num = 1000;
	string str;
	stringstream ss; //将str复制到ss
	ss << num;
	ss >> str;
	ss.clear();//使用stringstream来做转换时,最好使用完,进行ss.clear()操作
	cout << str << endl;
	cout << str.c_str() << endl;
	return 0;
}

OUTPUT:
在这里插入图片描述

三、字符的拼接
在这里插入图片描述

本文作者:WeSiGJ

参考链接(包括但不限于):
https://blog.csdn.net/liitdar/article/details/82598039
https://blog.csdn.net/weierqiuba/article/details/66473060
https://blog.csdn.net/xw20084898/article/details/21939811
http://www.cplusplus.com/reference/sstream/stringstream/stringstream/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++ stringstream ss() 的相关文章

随机推荐

  • 按键控制电机控制窗帘

    include lt reg52 h gt define uchar unsigned char define uint unsigned int sbit in1 61 P0 0 sbit in2 61 P0 1 sbit in3 61
  • CentOS 8上安装Docker

    参考连接 https www cnblogs com famine p 14065690 html 参考连接 https www a5idc net helpview 591 html 参考连接 https blog csdn net zh
  • OpenCV第七篇:车牌识别

    目录 1 调整图片大小 xff0c 并获取灰度图 2 双边滤波去除噪音 xff1a cv2 bilateralFilter 3 边缘检测 xff1a cv2 Canny xff08 image xff0c threshold1 xff0c
  • gitee如何添加仓库成员

    1 进入gitee项目中 xff0c 如图 xff0c 点击 管理 2 点击 仓库成员管理 xff0c 展开该节点 3 点击 所有 xff0c 也可以选择其他选项 xff0c 比如 开发者 4 点击 添加仓库成员 xff0c 邀请用户 5
  • A*寻路算法之解决目标点不可达问题

    在游戏世界的寻路中 xff0c 通常会有这样一种情况 xff1a 在小地图上点击目标点时 xff0c 点击到了障碍物或者建筑上 xff0c 然后游戏会提示我们目标地点无法到达 玩家必须非常小心的在小地图上点击目标区域的空白部分 xff0c
  • Windows访问samba共享时,提示:“你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问”

    此问题需要修改Win10 网络策略 按window 43 R键输入gpedit msc 来启动本地组策略编辑器 xff0c 如下 xff1a 依次找到 计算机配置 管理模板 网络 Lanman工作站 这个节点 xff0c 在右侧内容区可以看
  • 解决XCode错误:Command PhaseScriptExecution failed with a nonzero exit code

    一 环境 XCode版本 xff1a 14 3 二 错误场景信息 使用模拟器或真机调试 编译等都不出错 xff0c 唯独在进行Archive时 xff0c 会出现以下错误 xff1a Command PhaseScriptExecution
  • ubuntu+nvidia显卡驱动安装+(顺带)解决rviz卡顿/CPU使用率过高问题/compiz占用CPU过高问题

    前言 我原本安装nvidia显卡驱动的方式为 xff1a 从官网下载 run文件 xff0c 参考教程link 虽然安装成功 xff0c 运行深度学习相关代码没有出状况 xff0c 但仍然存在一些问题 重新通过ppa方式安装后 xff0c
  • Docker与ROS可视化(RViz)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 Docker中构建ROS环境二 Docker内ROS与主机ROS通信三 Docker内开启RViz1 OpenGL2 n
  • 卡尔曼滤波

    文章目录 前言一 初印象二 基本概念三 公式及参数四 其他总结 前言 之前看Fast LIO的时候 xff0c 了解过卡尔曼滤波的知识 xff0c 重新整理下 同时推荐一个很棒的Kalman Filter讲解网站 xff1a https w
  • 京东云前端JS分片上传完整版

    京东云上传我是写了以下几步 注 xff1a 京东云分片上传时成功则有data返回 失败则返回err 1 请求后台接口获取身份信息等数据用于访问 2 createMultipartUpload创建上传请求 身份信息 data为第一步时请求后台
  • Windows10环境下Python 开发环境搭建

    目录 前言 xff1a 一 安装包 二 Python安装 三 Pycharm安装 四 pip使用 前言 xff1a 本文档使用的安装包版本 xff1a python3 9 6 pycharm community 2021 1 3 本文安装提
  • Docker run 命令常用参数

    docker run xff1a 创建一个新的容器并运行一个命令 docker run OPTIONS IMAGE COMMAND ARG OPTIONS说明 xff1a it 以交互模式运行容器 xff1b gpus all xff1a
  • 3D resnet根据UCF101数据集制作自己的数据集实现动作识别

    3D resnet根据UCF101数据集制作自己的数据集实现动作识别 配置要求数据集数据集结构 构建数据集训练测试 配置要求 作者代码 3D resnet pytorch gt 0 4FFmpeg FFprobePython 3 我这里使用
  • STM32移植ucos-III并实现多任务——HAL

    文章目录 前言一 uC OS III简介1 什么是uC OS III2 uC OS III的特点 二 基于HAL库stm32移植uC OS III1 STM32CubeMX新建一个工程2 用keil打开工程完成uC OS III的移植 三
  • Mapreduce程序实现思路

    Map的输出 是key value的 list Reduce的输入是key value的list MapReduce核心思想 分而治之 xff0c 先分后和 MapReduce是hadoop提供的一个分布式运算框架 1将任务分为两个阶段执行
  • 人的梦想 是不会结束的!

    文章目录 前言一 一年之约1 学习嵌入式2 探寻嵌入式之路 二 我的心跳1 奉劝2 行动人的梦想是永远不会结束的 xff01 前言 随着在程序员这条路上不断发展 xff0c 自己学得越多 xff0c 就会感觉自己学的东西有多渺小 下面就说说
  • 在linux下启动tomcat,并实时查看tomcat的控制台输出

    在windows下 xff0c 只要双击运行start bat文件 xff0c tomcat就能正常启动 xff0c 并且在控制台中保持持续输出 xff0c 方便维护人员实时查看程序运行状态 但是在Linux中 xff0c 情况会比wind
  • apt-get autoremove remove 新手收割者

    每一个接触linux系统的小坏蛋 xff0c 都会接触apt get 不出意外的话 xff0c 每一个小坏蛋都会尝试被sudo apt get remove 所摆布的命运 重申一遍 xff0c 重要的事情说三遍 文章目录 不要用sudo a
  • c++ stringstream ss()

    定义了三个类 xff1a istringstream ostringstream 和 stringstream xff0c 分别用来进行流的输入 输出和输入输出操作 本文以 stringstream 为主 xff0c 介绍流的输入和输出操作