如何让系统在十六进制数前打印 0x 并在八进制数前打印 0?
How do I make the system print 0x before the hex number & 0 before the octal number?
我的老师说,对于作业,我们不允许在十六进制数之前手动打印 0x,我们必须让系统这样做。
目前我的代码如下所示:
cout << "Hex" << setw(12) << hex << static_cast<int>(letter) << setw(12) << hex
<< number << setw(12) << hex << static_cast<int> (symbol) << endl;
它打印出正确的十六进制值但没有 0x。
此外,对于八进制数,我必须再次让系统在数字前打印 0(不是手动打印。我的代码打印正确的值,但前面没有 0:
cout << "Octal" << setw(12) << setbase(8) << static_cast<int>(letter) << setw(12) << setbase(8)
<< number << setw(12) << setbase(8) << static_cast<int>(symbol) << endl;
使用std::showbase
:
std::cout << std::hex << std::showbase << 1234567890;
我的老师说,对于作业,我们不允许在十六进制数之前手动打印 0x,我们必须让系统这样做。
目前我的代码如下所示:
cout << "Hex" << setw(12) << hex << static_cast<int>(letter) << setw(12) << hex
<< number << setw(12) << hex << static_cast<int> (symbol) << endl;
它打印出正确的十六进制值但没有 0x。
此外,对于八进制数,我必须再次让系统在数字前打印 0(不是手动打印。我的代码打印正确的值,但前面没有 0:
cout << "Octal" << setw(12) << setbase(8) << static_cast<int>(letter) << setw(12) << setbase(8)
<< number << setw(12) << setbase(8) << static_cast<int>(symbol) << endl;
使用std::showbase
:
std::cout << std::hex << std::showbase << 1234567890;