gpt4 book ai didi

c++ - 如何理解cout的默认格式

转载 作者:行者123 更新时间:2023-11-30 04:42:43 24 4
gpt4 key购买 nike

我希望这不是一个幼稚的问题。类型转换是否在 C++ 中隐式执行?因为我要求用户输入一个十六进制格式的数字,然后当我将该数字输出到屏幕时没有提及其格式,它显示为十进制格式。我在这里错过了什么吗?

#include <iostream>
#include <iomanip> using namespace std;

int main() { int number = 0;
cout << "\nEnter a hexadecimal number: " << endl;
cin >> hex >> number;
cout << "Your decimal input: " << number << endl; number;
}

最佳答案

这里没有十六进制和十进制之间的类型转换。在内部,您的号码将以二进制形式存储(二进制表示),无论它是作为十六进制数还是十进制数读入的。从十进制/十六进制字符串转换为整数,当输入/输出数字时会发生相反的情况。

通过 std::hex,您告诉流您告诉流更改其整数 I/O 的默认数字基数。没有它,默认是十进制。因此,如果您只为 std::cin 执行此操作,那么它会以十六进制形式读取数字,但 std::cout 仍会输出十进制数字。如果您希望它也将其基数更改为十六进制,则必须对 std::cout 执行相同的操作:

std::cout << std::hex << "Your hexadecimal input: " << number << std::endl;

关于c++ - 如何理解cout的默认格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58622326/

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