当我尝试在 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
modifies the default numeric base for integer I/O ,不适用于浮点 I/O。
使用std::hexfloat
相反。
关于c++ - std::hex/std::oct 不工作(打印十进制值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30452439/