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

在C++中,std::stringstream 是一个非常实用的工具,用于在字符串和各种数据类型之间进行转换。它属于 头文件,结合了字符串操作和流输入输出的特性,适合做格式化读写、类型转换和解析文本。
1. 字符串流的基本构造与写入
创建一个 stringstream 对象后,可以像使用 cout 一样用 操作符向其中写入数据。
常见写入方式:
支持整数、浮点数、字符串等基本类型的拼接 可多次写入,内容会追加到内部缓冲区
#include #include #include std::stringstream ss;ss << "年龄:" << 25 << ", 身高:" << 175.5;std::cout << ss.str(); // 输出:年龄:25, 身高:175.5
2. 读取字符串流中的数据
使用 >> 操作符可以从 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
如果输入格式不匹配,提取会失败,可通过检查流状态判断。
3. 清空与重用 stringstream
stringstream 内部有缓冲区和状态标志,重复使用前需要清空内容和状态。
常见清空方法:
ss.str(std::string()); —— 清空内容 ss.clear(); —— 重置错误状态(如 eof、fail)
ss.str(""); // 设置为空字符串ss.clear(); // 清除状态标志// 此时可重新写入
4. 格式化控制输出
stringstream 支持 iomanip 中的格式控制,可用于数字格式化。
例如设置精度、进制、填充等。
#include 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++字符串流读写与格式化输出方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1484465.html
微信扫一扫
支付宝扫一扫