2013-11-03 17 views
0

如何使用十六進制前綴'0x'輸出一個printf語句並且右對齊?右對齊數字,包括使用printf的前綴

例如,如果我嘗試的權利與10個字符證明,但數量少於10個字符是這樣的:

printf("0x%10X\n", number); 

輸出:

enter image description here


我想它看起來像這樣(忽略圖片中有不同數字的事實):

enter image description here


我試過上面的代碼有一些變化,這是最接近的一個,到目前爲止,我發現。

+0

你沒事用'0x0035800000'? – Barmar

+0

您使用'0'修飾符來指定填充應爲零而不是空格。 – Barmar

回答

2

使用#修飾符,這使0x前綴部分字段。

printf("%#10x\n", number) 
+0

這符合我的需求。我還沒有想出這個選擇。謝謝! –

2

使用C++ I/O流調節劑只是工作,以及(它的安全太):

unsigned int short_hexidecimal_value = 0xff; //Less than ten characters in hex. 
unsigned long long long_hexidecimal_value = 0xfabcdef987; //Ten or more characters in hex. 
std::cout << std::setw(20) << std::right << std::uppercase << std::hex << "0x" << short_hexidecimal_value << '\n'; 
std::cout << std::setw(20) << "0x" << long_hexidecimal_value << '\n';