Std::hex/ Std::oct不工作(打印十进制值)

std::hex/std::oct not working (printing decimal value)

本文关键字:Std 打印 十进制 hex oct 工作      更新时间:2023-10-16

当我尝试以Hexoct格式打印数字时,我得到十进制输出而不是转换值

我不认为类定义是必要的,但这是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代替