您的位置:首页 > 编程语言 > C语言/C++

[001]C++ Cout格式化

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

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

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

hex(cout);

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

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

通常的使用方式为:

cout<<hex;

例:

#include<iostream>
int main() {
using namespace std;
cout << "enter:";
int n;
cin >> n;

cout << hex;
cout << n << "\n";

cout << oct << n << "\n";

dec(cout);
cout << n << "\n";

return 0;
}


运行情况为:

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个空格
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: