zoukankan      html  css  js  c++  java
  • 格式化输出[parts/iomanip]

    /*
    用ios类中的成员函数来进行IO格式的控制总需要写一条单独的语句,而不能直接嵌入到IO语句中,显得很不方便,因此C++又提供了一种用操作符来控制IO的格式。操作符分为带参和不带参两种,带参的定义在头文件iomanip中,不带参的定义在头文件iostream中

    首先看一下定义在头文件iostream中的不带参的流操作符
    boolalpha      使用文本形式输出bool型数值(即输出true或false)
    fixed          定点格式输出,即以小数点的形式表示浮点数
    scientific        用科学记数法表示浮点数
    dec            采用十进制,用于输入和输出
    oct          采用八进制,用于输入和输出
    hex            采用十六进制,用于输入和输出
    internal          输出格式为居中对齐
    right          输出格式为右对齐
    left            输出格式为左对齐
    showpos        在正数前面加上+号
    showpoint     显示末尾的0
    showbase      显示进制,即在十六进制数前添加0x,在八进制数前添加0
    uppercase     大写显示
    unitbuf       每次执行输出操作后均会清空缓冲区,如cout<<unitbuf<<"Test"<<"File";会刷新缓冲区两次
    skipws        忽略输入流中的空白字符,即当我们输入的字符前面有空格时,存储的时候会自动忽略
    以上15个即是标准控制符,它们可以自动调用setf()函数并提供正确的参数,因此可以直接使用

    noboolalpha
    noshowpos
    noshowpoint
    noshowbase
    nouppercase
    nounitbuf
    noskipws
    指示标志位ios::basefield、ios::adjustfield、ios::floatfield可以清除相应的8个标志位,剩下的7个标志位除了可以通过unsetf()清除,还可以通过以上7个命令清除相应标志位 

    ws 跳过输入的空格符,用于输入
    endl 输出一个换行符并刷新输出流,用于输出
    ends 输出一个空字符null,通常用来结束一个字符串,用于输出
    flush 刷新输出流,用于输出

    注:null和''的区别:''和null的值都是0,但''指的是空字符串,用于判断字符串结束;而null指的是空指针,用于判断指针指向的对象是否为空

    接下来看一下定义在头文件iomanip中的带参的流操作符
    setw(n)                   同ios类中的成员函数width(),设置字段宽度,用于输出
    setfill(c)                同ios类中的成员函数fill(),设置填充字符为c(默认为空格,一次有效),用于输出
    setprecision(n)          同ios类中的成员函数precision(),用于输出 
    setbase(n)            设置整数的基数为n(n可取0或10代表十进制,8代表八进制,16代表十六进制,默认为0),用于输入和输出
    setiosflags(fmtflag)     设置标志位,多个用"|"隔开,用于输入和输出
    resetiosflags(fmtflag)    清除指定标志位,多个用"|"隔开,用于输入和输出 

    */

    #include <iostream>
    using namespace std;
    int main()
    {
      int x;
      cin>>hex>>x;          //采用十六进制进行输入(16)
      cout<<x<<endl;        //默认采用十进制进行输出(22) 
      cin>>x;             //由于前面的cin>>hex会自动调用setf(ios::hex),而setf()会一直生效,因此这里仍采用十六进制进行输入(16) 
      cout<<x<<endl;         //默认采用十进制进行输出(22)
      cin>>oct>>x;         //这里会自动调用setf(ios::oct|ios::basefield),采用八进制进行输入(16) 
      cout<<x<<endl;       //默认采用十进制进行输出(14)
    
      cout<<'a';
      cout<<'b'<<ends;    //ends用于输出一个空字符null
      cout<<'c'<<endl;    //endl用于输出一个换行符,并刷新输出流(ab c) 
    
      bool b=123;
      cout<<boolalpha<<b<<endl;     //true
      cout<<noboolalpha<<b<<endl;   //1
    
      return 0;
    }
  • 相关阅读:
    ios实现程序切入后台,实现后台任务 (转自)
    iOS 设置页面的代码编写
    IOS 关于扬声器和听话筒的设置 ----自己试验过的,可以达到扩音器和听筒播放的效果
    转载自@机智的新手:使用Auto Layout中的VFL(Visual format language)--代码实现自动布局
    web前端基础知识-(六)web框架
    web前端基础知识-(五)jQuery
    web前端基础知识-(四)DOM
    web前端基础知识-(三)JavaScript基本操作
    web前端基础知识-(二)CSS基本操作
    web前端基础知识-(一)html基本操作
  • 原文地址:https://www.cnblogs.com/kevinq/p/4491851.html
Copyright © 2011-2022 走看看