如何准备std::字符串流
How do you prepend to std::stringstream?
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();
相关文章:
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 使用std::mt19937从字符串中返回一个随机单词
- 我可以重新分配/覆盖std::字符串吗
- 使用自定义比较函数使用std::sort()对矢量字符串进行排序时出现问题
- 如何将这个std::字符串转换为std::基本字符串
- 字符串化递归的"std::vector<std::vector<...>>"而不使用部分模板函数专用化
- std::字符串与 PCWSTR 的对话
- 确切地说,如何解释 std::getline(stream, string) 函数在C++中填充的字符串
- 将C++ std::string 转换为 UTF-16-LE 编码的字符串
- 使用 std::string_view 的子字符串控制台输出
- std::regex:匹配由数字和空格组成的字符串,并提取数字.如何?
- 重载 std::字符串运算符+ 用于打印枚举名称
- 从std::字符串创建OssBitString
- C++ TCP 套接字 | 无法将"std::__cxx11::字符串"转换为"const
- C 中的特殊字符的子字符串(STD :: substr)
- 是否建议将字符串std::移动到将被覆盖的容器中
- 显式指定要写入的字符串 std::ostringstream
- 如何将uint16_t转换为宽字符串(std::wstring)
- 读取和Huffman压缩4字节二进制字符串STD C++Linux环境