Std::hex/ Std::oct不工作(打印十进制值)
std::hex/std::oct not working (printing decimal value)
当我尝试以Hex
或oct
格式打印数字时,我得到十进制输出而不是转换值
我不认为类定义是必要的,但这是Number
class Number
{
public:
Number(double);
virtual void show () =0;
protected:
double number;
};
例如HexN.h(我仍然觉得问题不是由这些引起的)
#include "Number.h"
#pragma once
class Hex : public Number
{
public:
Hex(double);
virtual void show ();
};
show()
函数。它不能工作,只是输出回十进制而不是期望的进制
void Hex::show()
{
//std::cout.setf(std::ios::hex, std::ios::basefield); //Once i commented //std::hex
cout <<"Hex value is : "<<std::hex<<number<<endl;
}
搜索stackoverflow和其他网站,但他们都说使用std::cout<<std::hex<<number;
,这个函数在这里神奇地不起作用。
编辑:谢谢大家,通过将std::hex
更改为std::floathex
并将double
转换为long int
来解决八进制基数的问题。
std::hex
修改了整数I/O的默认基数,而不是浮点I/O。
用std::hexfloat
代替
相关文章:
- 如何使用 std::variant 打印地图键/值?
- 为什么 std::cout 打印浮点数、双精度和长双精度到相同的小数精度?
- 如何打印大于"无符号长长"的"std::bitset"的十进制值?
- main() 中的 std::cout 在调试期间不会在调试控制台中打印任何内容
- 重载 std::字符串运算符+ 用于打印枚举名称
- 在 c++ 中以十六进制格式打印无符号字符(BYTE).使用 std::cout
- std::带有颜色和标题的 clog 包装器无法正确打印整数
- 为什么这个程序接受整数和字母数字输入并打印它们? C++ 中的 std::string 也采用整数值吗?
- std::cout 在打印变量与函数表达式时的行为不同
- 使用 std::for_each 迭代和打印 std::map
- 有条件的打印和计数在 std::map 上有限制
- 在瓦尔格林德的泄漏摘要中使用 std::ios::sync_with_stdio(fasle) 打印时获取"still reachable"
- 如何在c++中打印原始std::string/c样式的字符串
- 打印空指针时,std::cout 可以打印 "NULL" 而不是 0 吗?
- C++ - 使用 std::list,如何打印对象的私有成员的链接列表?
- 打印一个带有静态 int 的函数,有一个 std::cout 和多个 std::cout 有什么区别?
- 使用带有 std::cout 的单引号打印字符串实际上打印了数字
- Std::copy 和 std::ostream_iterator 使用重载函数打印值
- 为什么 std::hex 没有特别用字符打印为十六进制?
- std::打印换行时字符串清空