c++ stringstream字符串流的用法

stringstream为字符串流,既能输入也能输出。 能简化字符串的一些操作。测试代码:

cpp 复制代码
void testStringStream(void) {
	// 字符串转整型(可以转多个整型)
	std::string str = "9527 666 888";
	std::stringstream ss1(str); // 字符串流,支持双向操作
	int num1, num2, num3;
	ss1 >> num1 >> num2 >> num3; // 提取
	std::cout << "字符串转整型: " << "num1: " << num1 << ", num2: " << num2 << ", num3: " << num3 << std::endl;

	// 数字转字符串
	std::stringstream ss2;
	ss2 << 1314 << 520; // 插入
	std::string str2 = ss2.str();
	std::cout << "str2: " << str2 << std::endl; // 打印str2: 1314520

	// 字符串按空格分割
	std::string str3 = "i love u vicky du !";
	std::stringstream ss3(str3);
	std::string w;
	for (;ss3 >> w;) {
		std::cout << w << std::endl;
	}

	// 字符串自定义符号分割
	std::stringstream ss4("大师兄躺在何金银的怀里;等插到你了再说嘛,自然有法律制裁他");
	std::string s;
	for (;std::getline(ss4, s, ';');) {
		std::cout << s << std::endl;
	}

	// fail函数检查是否提取成功
	std::stringstream ss5("1314 520 爱你一万年 1314520");
	int a = 0;
	for (;;) { // 循环提取到1314、 520
		ss5 >> a;
		if (ss5.fail()) break;
		std::cout << a << std::endl;
	}

	// 可以清空后复用
	ss5.str("");
	ss5.clear();
	// ...
}

打印:

ok.

相关推荐
黑马程序员毕设30 分钟前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设
_Twink1e1 小时前
openJiuwen 实训营 Day 1 · WorkSwarm 入门教程
开发语言·c++·openjiuwen
问天_观心1 小时前
大模型微调学习(一)
开发语言·人工智能·学习·语言模型·github
阿里嘎多学长1 小时前
2026-09-03 GitHub 热点项目精选
开发语言·程序员·github·代码托管
dong_junshuai2 小时前
每天一个开源项目#87 fmt:24.5K Stars 的 C++ 格式化核心
c++·开源·github
源代码•宸2 小时前
前置准备:定时微服务背景和现状
开发语言·经验分享·后端·微服务·云原生·架构·golang
2601_967338712 小时前
C#上位机开发零基础入门到精通全套视频
开发语言·c#
雪的季节3 小时前
Multisim14.0的详细中文安装步骤【附安装包】
c++
小白学大数据3 小时前
超简单:用 Python 让 Excel 飞起来:用 openpyxl 把重复报表整理交给脚本
开发语言·数据库·python·excel
旧梦95273 小时前
Java SortedMap 接口详解:从入门到实战
java·开发语言