36、stringstream

std::stringstream 是 C++ 标准库中的一个类,位于 <sstream> 头文件中。

它提供了一个在内存中操作字符串的流对象,类似于 std::iostream

但它的输入和输出目标是字符串而不是文件或控制台。

以下是 std::stringstream 的一些常见用法:

  1. 创建字符串流对象

    cpp 复制代码
    std::stringstream ss;
  2. 向字符串流中插入数据

    cpp 复制代码
    ss << "Hello, " << "world!" << 123;
  3. 从字符串流中提取数据

    cpp 复制代码
    std::string str;
    ss >> str;  // 提取到第一个空格或换行符
  4. 将字符串流转换为字符串

    cpp 复制代码
    std::string result = ss.str();
  5. 从字符串初始化字符串流

    cpp 复制代码
    std::string input = "123 456";
    std::stringstream ss(input);
    int a, b;
    ss >> a >> b;  // a = 123, b = 456
  6. 清空字符串流

    cpp 复制代码
    ss.str("");  // 清空内容
    ss.clear();  // 重置状态标志

示例代码

下面是一个简单的示例,展示了如何使用 std::stringstream

cpp 复制代码
#include <iostream>
#include <sstream>
#include <string>

int main() {

    // 创建字符串流对象
    std::stringstream ss;
    
    // 向字符串流中插入数据
    ss << "Hello, " << "world!" << 123;
    
    std::string result = ss.str();
    std::cout << "Result: " << result << std::endl;
    
    std::string input = "123 456";
    std::stringstream ss2(input);
    
    int a, b;
    ss2 >> a >> b;
    std::cout << "a: " << a << ", b: " << b << std::endl;

    int f;
    std::cin>>f;

    return 0;
}

/*
Result: Hello, world!123
a: 123, b: 456
*/

这个示例展示了如何创建字符串流、插入数据、提取数据以及将字符串流转换为字符串。

相关推荐
眠りたいです5 分钟前
Docker:镜像的运行实体-Docker Container
java·运维·c++·docker·容器·eureka
ComputerInBook11 分钟前
C++ 标准提供的 thread (线程)之 join() 函数示例(windows平台)
c++·线程·join函数
快乐的划水a11 分钟前
嵌入式时间测量方法总结
c++·stm32·单片机
郝学胜-神的一滴19 分钟前
GLSL语法详解:从入门到实战
c++·算法·图形渲染
WebRuntime28 分钟前
所有64位WinForm应用都是Chromium浏览器
javascript·c++·c#·.net·web
小此方30 分钟前
Re: ゼロから学ぶ C++ 入門(七)类和对象·第四篇:拷贝构造函数&赋值运算符重载
开发语言·c++
罗湖老棍子33 分钟前
C++ 自定义排序与优先队列运算符重载
数据结构·c++·算法··优先队列·运算符重载
凯子坚持 c34 分钟前
Protobuf 序列化协议深度技术白皮书与 C++ 开发全流程指南
开发语言·c++
superman超哥35 分钟前
仓颉协变与逆变的应用场景深度解析
c语言·开发语言·c++·python·仓颉
王老师青少年编程36 分钟前
csp信奥赛C++标准模板库STL案例应用7
c++·stl·set·集合·标准模板库·csp·信奥赛