std::stringstream用于字符串与数据类型转换,支持写入拼接、格式化解析、清空重用及格式控制,适用于配置解析与日志拼接等场景。

在C++中,std::stringstream 是一个非常实用的工具,用于在字符串和各种数据类型之间进行转换。它属于 <sstream> 头文件,结合了字符串操作和流输入输出的特性,适合做格式化读写、类型转换和解析文本。
创建一个 stringstream 对象后,可以像使用 cout 一样用 << 操作符向其中写入数据。
常见写入方式:
#include <sstream> #include <iostream> #include <string> std::stringstream ss; ss << "年龄:" << 25 << ", 身高:" << 175.5; std::cout << ss.str(); // 输出:年龄:25, 身高:175.5
使用 >> 操作符可以从 stringstream 中按字段提取数据,类似 cin 的行为。
立即学习“C++免费学习笔记(深入)”;
适用于解析格式化的字符串,比如从一行文本中提取多个值。
std::string input = "张三 20 85.5"; std::stringstream ss(input); std::string name; int age; double score; ss >> name >> age >> score; // 成功提取:name="张三", age=20, score=85.5
如果输入格式不匹配,提取会失败,可通过检查流状态判断。
stringstream 内部有缓冲区和状态标志,重复使用前需要清空内容和状态。
常见清空方法:
ss.str(""); // 设置为空字符串
ss.clear(); // 清除状态标志
// 此时可重新写入
stringstream 支持 iomanip 中的格式控制,可用于数字格式化。
例如设置精度、进制、填充等。
#include <iomanip> std::stringstream ss; ss << std::fixed << std::setprecision(2) << 3.14159; // 结果:"3.14" ss << " 0x" << std::hex << 255; // 追加后为:"3.14 0xff"
基本上就这些。stringstream 在处理配置解析、日志拼接、数值转字符串等场景中非常方便,掌握好读写和清空方式就能避免常见问题。不复杂但容易忽略状态管理。
以上就是c++++中std::stringstream的常见用法_c++字符串流读写与格式化输出方法的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号