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