這個問題來自我最近遇到的一個錯誤。我試圖將一些整數值保存爲十六進制文件。作爲一個例子,這是我應該做的: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