2017-03-07 48 views
-2

我想顯示這些特定的寄存器和計數器的值(十六進制),但我想限制顯示的位數。控制正在顯示的位數C++

cout << "Acc register : " << hex << Acc << ",";  //display 2 digits 
cout << " X register : " << hex << X << ",";   //display 3 digits 
cout << " Program counter : " << hex << PC << ","; //display 3 digits 

我也想爲Program counter : 004

我已經在網上搜索,試圖顯示前面的零,如果值僅爲1位長,例如,如果
program counter = 4

PC應該顯示和找到一個解決方案,但我似乎無法找到有效的東西。任何人都可以解釋如何做到這一點。非常感謝。

+1

使用'('和'填充( '0')'。 –

+0

爲什麼不使用'printf'? C++'cout'等是一種痛苦... –

回答

0

STL帶有一個名爲iomanip的頭文件,它可以以您想要的方式修改,甚至更多。

一個簡單的例子是:

#include <iomanip> 
#include <iostream> 

int main() { 
    std::cout << std::setfill ('x'); 
    std::cout << "PC" << std::setw(3) << 4 << std::endl; 
} 

另外一個例子可以在這裏找到: http://www.cplusplus.com/reference/iomanip/setfill/

在這裏的所有選項的概述:)運輸及工務局局長 http://www.cplusplus.com/reference/iomanip/

+0

謝謝。我試圖根據您的建議設置寬度,但它仍然顯示4位數字,它是否有所不同,我試圖顯示的值是十六進制的? @OutOfBound –

+0

可能。你可以在問題中發佈完整的代碼,然後我可以查找問題 – OutOfBound