zoukankan      html  css  js  c++  java
  • [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个空格

  • 相关阅读:
    185. [USACO Oct08] 挖水井
    JavaEE Tutorials (9)
    vjudge A
    HDU 2089 不要62
    国庆 day 2 下午
    国庆 day 2 上午
    国庆 day 1 下午
    P2899 [USACO08JAN]手机网络Cell Phone Network
    洛谷 P1690 贪婪的Copy
    洛谷 P2209 [USACO13OPEN]燃油经济性Fuel Economy
  • 原文地址:https://www.cnblogs.com/hustcser/p/2718141.html
Copyright © 2011-2022 走看看