

新闻资讯
技术学院std::stringstream 通过内存流机制实现字符串与数字双向转换:写入数字自动转字符串,读取字符串尝试解析为数字;支持格式控制、错误检查及多类型混合操作,但开销略大。
用 std::stringstream 转换字符串和数字,核心是把它当作一个“内存中的流”来读写:写入数字会自动转成字符串,读入字符串会尝试解析成数字。
把字符串放入 stringstream,再用 >> 提取到目标类型变量中。失败时流状态会置为 failbit,建议检查。
std::stringstream ss(str) 或用 ss
ss >> num 尝试读取,返回值可判断是否成功"123abc"),读取 123 后流不会报错,但 ss.peek() != EOF 可检测残留把数字写入 stringstream,再调用 .str() 获取结果字符串。
std::stringstream ss; ss
ss 得到 "ff",或 std::setprecision(2)
std::to_string 更灵活,适合拼接、带格式、多类型混合输出避免隐式失败,封装成带校验的函数更可靠:
ss.fail() || !ss.eof()
"1e3")默认支持s
s.clear() 清除错误状态,再用 ss.str("") 清空内容std::stringstream 功能全但稍重;简单场景可考虑:
std::to_string:仅支持基本数字→string,无格式控制,无错误反馈std::from_chars(C++17):最快、零分配、纯函数式,但不支持格式化,且需手动处理错误码std::stoi / std::stod:简洁,抛异常,适合信任输入格式的场合