当我尝试以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
的八进制基数来解决。
答案 0 :(得分:7)
std::hex
modifies the default numeric base for integer I/O ,不适用于浮点I / O.
改为使用std::hexfloat
。