• cout的输出格式初探


    在C++中,cout代表的是标准输出设备,即显示器,相对于C语言中所使用的printf函数,cout显得更为灵活。下面以30、300和1024三个数为例子,简单说明cout输出时所选格式的输出。cout默认以十进制方式输出数值,也可以设置为八进制(oct)、十六进制(hex)输出方式,同时还可以显示输出方式的基指示符(进制标识符,例如八进制的O,十六进制的Ox)。

     1 //设置输出格式
     2 #include <iostream>
     3 #include <iomanip>
     4 using namespace std;
     5 int main()
     6 {    
     7     cout<<"please input a string"<<endl;
     8     char str[20];
     9     cin>>str; //cin默认以空格作为定界符,考虑使用getline()函数
    10     cout<<"str = "<<str<<endl;
    11     
    12     cout<<"----------------"<<endl;
    13 
    14     int x = 20, y = 300, z = 1024;
    15     cout<<x<<' '<<y<<' '<<z<<endl;
    16 
    17     cout.unsetf(ios::dec); //取消十进制输出格式
    18     cout.setf(ios::showbase | ios::uppercase); //showbase是基指示符,指示进制,uppercase只对于OX大写有效
    19     cout<<x<<' '<<y<<' '<<z<<endl;
    20     
    21     cout.unsetf(ios::showbase | ios::uppercase); //取消showcase和uppercase
    22     cout.setf(ios::oct); //设置八进制输出格式
    23     cout<<x<<' '<<y<<' '<<z<<endl;
    24 
    25     cout.setf(ios::showbase | ios::uppercase);
    26     cout<<x<<' '<<y<<' '<<z<<endl;
    27     
    28     cout.unsetf(ios::oct);
    29     cout.unsetf(ios::showbase | ios::uppercase ); 
    30     cout.setf(ios::hex); //设置十六进制输出格式
    31     cout<<x<<' '<<y<<' '<<z<<endl;
    32 
    33     //cout.unsetf(ios::showbase | ios::lowercase ); //lowercase在此处不行
    34     //cout<<x<<' '<<y<<' '<<z<<endl;
    35 
    36     cout.setf(ios::showbase | ios::uppercase);
    37     cout<<x<<' '<<y<<' '<<z<<endl;
    38 
    39     cout.unsetf(ios::showbase | ios::uppercase);
    40     cout.unsetf(ios::hex);
    41     cout<<x<<' '<<y<<' '<<z<<endl;
    42 
    43     cout<<"----------------"<<endl;
    44     cout<<x<<' '<<y<<' '<<z<<endl; //按十进制输出
    45     cout<<oct<<x<<' '<<y<<' '<<z<<endl; //按八进制输出
    46 
    47     cout<<setiosflags(ios::showbase); //设置基指示符 //setiosflags设置
    48     cout<<x<<' '<<y<<' '<<z<<endl; //仍按八进制输出
    49     
    50     cout<<resetiosflags(ios::showbase); //取消基指示符 //resetiosflags取消
    51     cout<<hex<<x<<' '<<y<<' '<<z<<endl; //按十六进制输出
    52     
    53     //设置基指示符和数值中的字母大写输出
    54     cout<<setiosflags(ios::showbase | ios::uppercase);
    55     cout<<x<<' '<<y<<' '<<z<<endl; //仍按十六进制输出
    56     
    57     //取消基指示符和数值中的字母大写输出
    58     cout<<resetiosflags(ios::showbase | ios::uppercase);
    59     cout<<x<<' '<<y<<' '<<z<<endl; //仍按十六进制输出
    60     
    61     cout<<dec<<x<<' '<<y<<' '<<z<<endl; //按十进制输出
    62 
    63     return 0;
    64 }

    程序运行结果:

  • 相关阅读:
    逆向工程工具介绍2-IDA
    汇编语言基础-1 基本语言元素
    Python常用标准库1-Turtle,Random,Time和Datetime
    Python的模块、包和库的概念
    Go语言的函数修饰符
    物理层2-物理层下面的传输媒体
    数据分析之两种用户分群方法(RFM和聚类)
    区间估计与假设检验公式
    源码分析过滤器与拦截器的区别
    Springboot拦截器使用及其底层源码剖析
  • 原文地址:https://www.cnblogs.com/GarfieldEr007/p/4632186.html
Copyright © 2020-2023  润新知