gpt4 book ai didi

c++ - 重置 std::stringstream 格式标志

转载 作者:行者123 更新时间:2023-11-30 03:35:24 28 4
gpt4 key购买 nike

我需要在我的控制台中打印十六进制和十进制值。我使用以下代码来完成它。

std::stringstream ss;

ss << "0x" << std::uppercase << std::hex << 15;
std::cout << ss.str() << std::endl;

ss.str("");
ss.clear();

ss << 15;
std::cout << ss.str() << std::endl;

但我得到的是十六进制格式的两个值。如何重置字符串流?

最佳答案

How to reset stringstream?

格式标志是粘性的。

您可以保存旧格式标志以便稍后恢复它们:

std::stringstream ss;
auto oldFlags = ss.flags(); // <<

ss << "0x" << std::uppercase << std::hex << 15;
std::cout << ss.str() << std::endl;

ss.flags(oldFlags); // <<

ss << 15;
std::cout << ss.str() << std::endl;

关于c++ - 重置 std::stringstream 格式标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41331637/

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