如何理解cout的默认格式

how to understand the default format of cout

我希望这不是一个幼稚的问题。类型转换是否在 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; 
                }

这里没有十六进制和十进制之间的类型转换。在内部,您的号码将以二进制形式存储(二进制表示),无论它是作为十六进制数还是十进制数读入的。当数字为 inputted/outputted.

时,将 dec/hex 的字符串转换为整数,反之亦然

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

执行相同的操作
std::cout << std::hex << "Your hexadecimal input: " << number << std::endl;