std::stringstream是C++中用于字符串流处理的类,支持数值与字符串转换、格式化解析等。

在C++中,std::stringstream 是一个非常实用的类,定义在 头文件中。它允许你像操作输入输出流一样处理字符串,把字符串当作“流”来读写,常用于字符串与数值之间的转换、格式化解析等场景。
字符串流的基本功能
std::stringstream 结合了输入(std::istream)和输出(std::ostream)的能力,可以:
将数字转换为字符串(类似 std::to_string) 将字符串解析成数字(比 atoi 更安全) 按空格或自定义方式分割字符串 拼接多种类型的数据到一个字符串中
基本使用示例
下面是一个简单的例子,展示如何用 std::stringstream 进行数值与字符串的相互转换:
#include iostream>
#include
#include
int main() {
std::stringstream ss;
// 数字转字符串
int num = 123;
ss std::string str = ss.str();
std::cout
// 清空流内容
ss.str(“”);
ss.clear(); // 清除状态标志
// 字符串转数字
ss int num2;
ss >> num2;
std::cout
return 0;
}
输出结果:
立即学习“C++免费学习笔记(深入)”;
字符串: 123
数字: 456
解析带空格的字符串(如拆分单词)
利用字符串流可以轻松按空格分割字符串,适合处理用户输入或配置项:
#include
#include
#include
int main() {
std::string input = “apple banana cherry”;
std::stringstream ss(input);
std::string word;
while (ss >> word) {
std::cout }
return 0;
}
输出:
apple
banana
cherry
拼接不同类型的数据
你可以用 stringstream 把整数、浮点数、字符串等混合拼接成一个字符串:
#include
#include
#include
int main() {
std::stringstream ss;
int age = 25;
double height = 1.78;
std::string name = “Tom”;
ss std::cout
return 0;
}
输出:
Tom is 25 years old and 1.78m tall.
基本上就这些。std::stringstream 虽然性能不如直接使用 fmt 或 std::format(C++20),但在没有这些支持的环境中,它是处理字符串转换和解析的可靠工具。注意每次复用前调用 str(“”) 和 clear(),避免状态残留。不复杂但容易忽略。
以上就是c++++中std::stringstream有什么用_c++字符串流功能与示例的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1479365.html
微信扫一扫
支付宝扫一扫