2017-03-07 49 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