如何理解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;
}
这里没有十六进制和十进制之间的类型转换。在内部,您的数字将存储在2的互补(二进制表示(中,无论它是以十六进制还是十进制读取的。当输入/输出数字时,会发生从dec/xex字符串转换为整数和其他方式的转换。
使用std::hex
,您告诉流您告诉流更改其整数I/O的默认数字基数。如果没有它,默认值为十进制。所以,如果你只对std::cin
这样做,那么它以十六进制读取数字,但std::cout
仍然输出十进制数字。如果您希望它也将其基数更改为十六进制,则必须对std::cout
:执行相同操作
std::cout << std::hex << "Your hexadecimal input: " << number << std::endl;
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 如何使用默认参数等选择模板专业化
- 具有默认模板参数的多态类的模板推导失败
- 如何在openssl-ecc中获取十六进制格式的私钥
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 注意:"Entity_c::Entity_c(const Entity_c&)"被隐式删除,因为默认定义格式不正确:
- 如何理解cout的默认格式
- 保证最大输出长度为双精度,并设置默认输出格式的精度
- 被隐式删除,因为默认定义格式不正确:
- 默认构造函数 C++ 格式
- “在成员函数之外封闭类的定义中需要默认成员初始值设定项” - 我的代码格式不正确
- C++构造函数被隐式删除,因为默认定义的格式不正确
- 错误:隐式删除,因为默认定义格式不正确(结构向量)
- 如何使用 boost::log::BOOST_TRIVIAL_LOG 更改默认格式
- 默认参数之后的可变参数格式是否正确
- wstringstream默认格式标志
- Pair(const std::p air<_T1, _T2>&) 被隐式删除,因为默认定义格式不正确 错误:分配unique_ptr映射时
- SFML C++联合构造函数被隐式删除,因为默认定义格式不正确
- 复制构造函数被隐式删除,因为默认定义的格式不正确