zoukankan      html  css  js  c++  java
  • setw(int n), setfill(c)--#include <iomanip>

    一、在C++中,setw(int n)用来控制输出间隔
    例如:
    cout<<'s'<<setw(8)<<'a'<<endl;
    则在屏幕显示
    s        a 
    //s与a之间有7个空格,setw()只对其后面紧跟的输出产生作用,如上例中,表示'a'共占8个位置,不足的用空格填充。若输入的内容超过setw()设置的长度,则按实际长度输出。


    二、setw()默认填充的内容为空格,可以setfill()配合使用设置其他字符填充。

    cout<<setfill('*')<<setw(5)<<'a'<<endl;
    则输出:
    ****a //4个*和字符a共占5个位置。

    所谓域宽,就是输出的内容(数值或字符等等)需要占据多少个字符的位置,如果位置有空余则会自动补足。比如我们要设置域宽为2,那么当输出一位数1的时候输出的就是“ 1”,即在1前面加了一个空格。空格和数字1正好一共占用了两个字符的位置。

    我 们在设置域宽和填充字符的时候要注意几点

    1.设置域宽的时候应该填入整数,设置填充字符的时候应该填入字符。

    2.我们可以对一个要输出的内容同时设置域宽和 填充字符,但是设置好的属性仅对下一个输出的内容有效,之后的输出要再次设置。即 cout <<setw(2) <<a <<b;语句中域宽设置仅对a有效,对b无效。

    3.setw和setfill 被称为输出控制符,使用时需要在程序开头写上#include <iomanip>,否则无法使用。

    setw(n) 设域宽为n个字符 iomanip.h iomanip.h是I/O流控制头文件,就像C里面的格式化输出一样. 以下是一些常用的函数:

    dec 置基数为10 相当于"%d"

    hex 置基数为16 相当于"%X"

    oct 置基数为8 相当于"%o"

    setfill(c) 设填充字符为c

    setprecision(n) 设显示小数精度为n位

    setw(n) 设域宽为n个字符

    setiosflags(ios::fixed) 固定的浮点显示

    setiosflags(ios::scientific) 指数表示

    setiosflags(ios::left) 左对齐

    setiosflags(ios::right) 右对齐

    setiosflags(ios::skipws 忽略前导空白

    setiosflags(ios::uppercase) 16进制数大写输出

    setiosflags(ios::lowercase) 16进制小写输出

    setiosflags(ios::showpoint) 强制显示小数点

    setiosflags(ios::showpos) 强制显示符号

    示例:

    #include <iomanip>
    #include <iostream>
    int main()
    {  
      cout<<'s'<<setw(8)<<'a'<<endl; //s a,//s与a之间有7个空格  
    cout<<setfill('*')<<setw(5)<<'a'<<endl;
    //****a //4个*和字符a共占5个位置。
    cout<<12345.0<<endl;//12345 cout<<setiosflags(ios::scientific)<<12345.0<<endl;//1.234500e+004 12 13 cout<<setprecision(3)<<12345.0<<endl;//1.235e+004 14 15 return 0; 16 17 }

    原文:http://hi.baidu.com/golny/item/9fbbc4f11afe2f1da729884b

  • 相关阅读:
    C#操作REDIS例子
    A C# Framework for Interprocess Synchronization and Communication
    UTF8 GBK UTF8 GB2312 之间的区别和关系
    开源项目选型问题
    Mysql命令大全——入门经典
    RAM, SDRAM ,ROM, NAND FLASH, NOR FLASH 详解(引用)
    zabbix邮件报警通过脚本来发送邮件
    centos启动提示unexpected inconsistency RUN fsck MANUALLY
    rm 或者ls 报Argument list too long
    初遇Citymaker (六)
  • 原文地址:https://www.cnblogs.com/vranger/p/11670246.html
Copyright © 2011-2022 走看看