这个问题来自我最近遇到的一个错误。我试图将一些整数值保存为十六进制文件。作为一个例子,这是我应该做的:cout << std :: ios :: hex做什么?
cout << std::hex << value << endl; // (1)
但错误,我用它为以下几点:
cout << std::ios::hex << value << endl; // (2)
编译器不抱怨,但显然结果是不正确的。我随机尝试了更多的值,并且似乎(2)实际上给出了部分正确的结果,只是它将作为前缀。我不明白哪里来的是哪里,我在任何地方都看不到很好的参考。任何人都可以解释底下发生了什么?
cout << std::hex << 255 << endl; // output: FF
cout << std::ios::hex << 255 << endl; // output: 800ff
cout << std::hex << 135 << endl; // output: 87
cout << std::ios::hex << 135 << endl; // output: 80087
cout << std::hex << 11 << endl; // output: b
cout << std::ios::hex << 11 << endl; // output: 800b