• C++格式化输出


    在输出数据时,为简便起见,往往不指定输出的格式,由系统根据数据的类型采取默认的格式,但有时希望数据按指定的格式输出。

    (如有时候需要按十六进制或者八进制输出、按指定的宽度、保留小数点后两位)

    C++提供了两种方法:

    1).使用控制符的方法   2).使用流对象的有关成员函数

    使用控制符的方法

    1. #include
    2. #include
    3. using namespace std;
    4. int main(void)
    5. {
    6. int a;
    7. cout<<"input:";
    8. cin>>a;
    9. // cout<<"dec:"<
    10. // cout<<"hex:"<
    11. // cout<<"oct:"<
    12. // //分别以十进制 八进制 十六机制的方式输出 不支持以二进制方式输出
    13. // cout<
    14. // cout<
    15. // cout<
    16. //指定域宽
    17. const char *p = "china";
    18. cout<<setw(10)<//右对齐
    19. cout<<setw(10)<
    20. cout<<setfill('*')<<setw(10)<
    21. double pi = 22/7.0;
    22. cout<<setiosflags(ios::scientific)<<setprecision(8)<//科学计数法
    23. cout<<setiosflags(ios::fixed)<<setprecision(4)<//小数方式
    24. return 0;
    25. }

     人们在输入输出时有一些特殊的要求,如输出实数时规定字段宽度,只保留两位小数,数据向左或向右对齐等。C++提供了在输入输出流中使用的控制符

    控制符作用
    dec设置数值的基数为10
    hex设置数值的基数为16
    oct设置数值的基数为8
    setfill(ch)设置填充字符c,c可以是字符符常量或字符变量
    setprecision(n)设置浮点数的精度为n位。在以一般十进制小数形式输出时,n代表有效数位。在以fixed形式输出时,n为小数位数
    setw(n)设置字段宽度为n位
    setiosflags(ios::fixed)设置浮点数以固定的小数显示
    setiosflags(ios::sientific)设置浮点数以科学计数法显示
    setiosflags(ios::left)输出数据左对齐
    setiosflags(ios::right)输出数据右对齐
    setiosflags(ios::skipws)忽略前导的空格
    setiosflags(ios::uppercase)数据以十六进制形式输出时字母以大写表示
    setiosflags(ios::lowercase)数据以十六进制形式输出时字母以小写表示
    setiosflags(ios::showpos)输出正数时给出 “+” 号

    小数输出的注意点:

            double  a = 123.45567890;

            cout<

            cout<

            cout<

            cout<

            cout<

            cout<

            cout<


     用流对象的成员函数控制输出格式

    除了可以用控制符来控制输出格式外,还可以通过调用流对象cout中用于控制输出格式的成员函数来控制输出格式

    流成员函数与之作用相同的控制符
    precision(n)setprecision(n)
    width(n)setw(n)
    fill(ch)setfill(ch)
    setf()setiosflags()
    unsetf()resetfiosflags()    终止已设置的输出格式状态

     格式标志在类ios中被定义为枚举值。因此在引用的时候需要加上 ios::

    ios::left左对齐
    ios::right右对齐
    ios::internal数值的符号位在域内左对齐,数值右对齐,,中间由填充字符填充
    ios::dec

    设置整数的基数为10

    ios::oct设置整数的基数为8
    ios::hex

    设置整数的基数为16

    ios:showbase强制输出整数的基数
    ios::uppercase大写(十六进制或者科学计数法E)
    ios::showpos正数显示 “+“ 号
    ios::scientific浮点数以科学记数法格式输出
    ios::fixed浮点数以小数的形式输出
    ios::unitbuf每次输出之后刷新所有的流
    ios::stdio每次输出之后清除 stdout stderr
    1. #include
    2. using namespace std;
    3. int main(void)
    4. {
    5. int a = 29;
    6. cout.setf(ios::showbase); //显示基数符号
    7. cout<//默认是十进制
    8. cout.unsetf(ios::dec); //终止十进制的格式
    9. cout.setf(ios::oct); //设置为八进制
    10. cout<
    11. cout.unsetf(ios::oct); //终止八进制方式输出
    12. cout.setf(ios::hex);
    13. cout<
    14. cout.unsetf(ios::hex);
    15. char *p = "china";
    16. cout.width(10); //设置宽度为10
    17. cout<
    18. cout.flush();
    19. cout.width(10);
    20. cout.fill('*');
    21. cout<
    22. return 0;
    23. }

  • 相关阅读:
    MySQL表的内外连接
    弘玑Cyclone2022年产品发布会:人人可用的数字化工作平台——弘玑工作易
    uniapp不同平台获取文件内容以及base64编码特征
    Java日期的学习篇
    Mac上Chrome浏览器快捷键汇总
    Linux系统架构----Tomcat 部署
    Python中popitem()删除并返回最后插入字典中的键值对
    企业运维之服务管理 -- promethues
    vscode开发油猴插件环境配置指南
    P1226 【模板】快速幂
  • 原文地址:https://blog.csdn.net/weixin_46120107/article/details/126040251