[001]C++ Cout格式化

在C中,如果存在一个int变量,我们要将其转换为八进制、十六进制等输出的时候,这个是非常简单的,只需要在printf的时候选择相对应的就行了。

但是在C++中,如果单纯的使用cout,这个是怎么实现的呢?

要控制整数以什么形式来显示,可以使用dec、hex、oct控制符,例如:

 hex(cout);

将cout对象的格式设置为十六进制,完成上述设置后,程序将以十六进制形式打印整数值,直到其他选项来改变格式状态为止。

(需要注意的是,控制符不是成员函数,因此不需要通过对象来调用)

通常的使用方式为:

cout<<hex;

例:

 1 #include<iostream>
 2 int main() {
 3     using namespace std;
 4     cout << "enter:";
 5     int n;
 6     cin >> n;
 7 
 8     cout << hex;
 9     cout << n << "\n";
10 
11     cout << oct << n << "\n";
12 
13     dec(cout);
14     cout << n << "\n";
15 
16     return 0;        
17 }

运行情况为:

enter:13
d
15
13

除了转换进制外,还有其他需要特别注意的地方:

   在新式实现中,浮点类型被显示为6位,末尾的0不显示。数字以定点表示法显示还是以科学计数法表示,取决于它的值。具体来说,当指数大于等于6或小于等于-5时,将使用科学计数法表示。如:

double f = 1.200;
cout <<  f << "\n";
cout << (f  +  1.0 /  9.0)  << “/n”;

double f1 = 1.67E2;
cout << f1 << "\n";
cout << (f1 * 1.0e4) << "\n";

输出就变为:

1.2
1.31111
167
1.67e+006

1.200末尾的0没有显示出来,但末尾不带0的浮点值后面将有6个空格

posted @ 2012-10-10 13:17  依然冷月  阅读(322)  评论(0编辑  收藏  举报