首页 > 后端开发 > C++ > 正文

c++怎么使用stringstream进行字符串和数字转换_c++ stringstream类型转换实例

裘德小鎮的故事
发布: 2025-10-21 13:29:01
原创
624人浏览过
stringstream用于字符串与数字转换,需包含<sstream>头文件,通过>>和<<操作符实现解析与格式化,复用时需调用str("")和clear()。

c++怎么使用stringstream进行字符串和数字转换_c++ stringstream类型转换实例

在C++中,stringstream 是处理字符串和数字之间转换的常用工具。它位于 <sstream> 头文件中,使用方式类似于输入输出流(如 cin 和 cout),可以方便地实现类型转换,尤其适合处理格式化字符串或解析混合内容。

包含头文件并创建 stringstream 对象

要使用 stringstream,先包含对应的头文件:

#include <sstream>
#include <string>
#include <iostream>

然后声明一个 stringstream 变量:

std::stringstream ss;

数字转字符串(int/float → string)

将数字写入 stringstream,再用 str() 方法获取字符串。

立即学习C++免费学习笔记(深入)”;

int num = 123;
std::stringstream ss;
ss std::string str = ss.str();
// str 现在是 "123"

也可以连续写入多个值:

ss.clear(); // 清除状态(可选)
ss.str(""); // 清空内容
float f = 3.14;
ss std::string result = ss.str(); // result 是 "Value: 3.14"

字符串转数字(string → int/float/double)

将字符串放入 stringstream,然后从中提取数字。

阿里云-虚拟数字人
阿里云-虚拟数字人

阿里云-虚拟数字人是什么? ...

阿里云-虚拟数字人 2
查看详情 阿里云-虚拟数字人
std::string str = "456";
std::stringstream ss(str); // 构造时传入字符串
int num;
ss >> num;
// num 现在是 456

如果字符串包含非数字内容,只读取前面的有效部分:

std::string text = "789abc";
std::stringstream ss2(text);
int val;
ss2 >> val; // val = 789,遇到 'a' 停止

可用于检查是否完整转换:

std::string input = "123";
std::stringstream ss3(input);
int x;
ss3 >> x;
if (ss3.eof()) {
  // 成功且完全读取
}
else {
  // 转换失败或有剩余字符
}

实用示例:解析带单位的数据

比如处理用户输入 "width=100px",提取数值:

std::string line = "width=100px";
std::replace(line.begin(), line.end(), '=', ' '); // 替换 '=' 为空格
std::replace(line.begin(), line.end(), 'p', ' '); // 替换 'p' 为空格
std::stringstream ss(line);
std::string label;
int value;
ss >> label >> value; // label="width", value=100

这种方法在解析配置或日志文本时很实用。

基本上就这些。stringstream 使用自然,语法清晰,适合中小规模的字符串与数字转换任务。注意每次复用前清空内容(str(""))和状态(clear()),避免残留影响结果。

以上就是c++++怎么使用stringstream进行字符串和数字转换_c++ stringstream类型转换实例的详细内容,更多请关注php中文网其它相关文章!

c++速学教程(入门到精通)
c++速学教程(入门到精通)

c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号