gpt4 book ai didi

c++ - std::cout::setf 不起作用(setf 为十六进制)

转载 作者:搜寻专家 更新时间:2023-10-31 00:36:28 26 4
gpt4 key购买 nike

我测试了《实用C++程序设计》一书中的代码。但是下面的例子并不像书上说的那样有效。我错过了什么?请帮忙。

#include <iostream>

int main() {
int number = 0x3FF;
std::cout << "Dec: " << number << '\n';
std::cout.setf(std::ios::hex);
std::cout << "Hex: " << number << '\n';

std::cout.setf(std::ios::dec);
}

预期的结果是

Dec: 1023
Hex: 3ff

但是,我得到了

Dec: 1023
Dec: 1023

最佳答案

您需要使用 the second overload of setf使用 std::ios::basefield 掩码清除基本标志:

std::cout.setf(std::ios::hex, std::ios::basefield);

Dec: 1023
Hex: 3ff

Demo on ideone.

关于c++ - std::cout::setf 不起作用(setf 为十六进制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21810741/

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