gpt4 book ai didi

c++ - 你如何添加到 std::stringstream?

转载 作者:行者123 更新时间:2023-11-28 00:30:20 25 4
gpt4 key购买 nike

std::stringstream ss;

int number = 0x12345678;

ss << std::hex << number;

cout << ss.str();

这将产生 12345678

我想把它变成0x12345678。如何在 ss.str() 前面添加 0x

最佳答案

可能最简单的方法是更改​​ stringstream ss 的格式:让它自动在数字基数前添加 std::showbase :

#include <sstream>
#include <iostream>

int main()
{
std::stringstream ss;

int number = 0x12345678;

ss << std::showbase << std::hex << number; // prepends the 0x automagically

std::cout << ss.rdbuf(); // empties ss
}

请注意,我将输出从 cout << ss.str() 更改为 cout << ss.rdbuf() 。这会修改流 ss(之后它是空的),但不需要像 OP 示例中那样的拷贝。

一旦您将数字放入字符串流中,我就没有一种简单的方法可以在此字符串流中添加 0x。然而,您可以在将流的内容打印到 cout 之前打印它:

std::cout << "0x" << ss.rdbuf();

关于c++ - 你如何添加到 std::stringstream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23188865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com