zoukankan      html  css  js  c++  java
  • C++输出格式

    C++输出格式

    C++中默认输出有效位数是6位,即

    则输出:

    221.11
    1.11011
    199967 //6位有效数字,自动截取保存六位
    1.99967e+006 //六位以上且无法省略显示将会变为指数显示

    那么如果需要显示多位,可以通过调整输出格式,那么设置c++输出格式,主要有两种办法:

    1、在输入流与输出流中使用控制符

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

    二者有什么区别,用法上呢,第一种就是使用控制符设置输出显示,例如:

    cout<<setw(10)<<a<<endl;//设置了输出的宽度为10,多余默认用空格补齐

    而第二种,通过调用流对象cout中用于控制输出格式的成员函数来控制输出格式,例如:

    cout.width(10)//设置了输出的宽度为10,同样的多余的默认用空格补齐

    而值得一提的是,从影响范围上看,笔者原以为第二种调用成员函数将改变全局设置,但是实际上二者都只能影响下一次的输出格式,例,使用控制符:

    输出为:

    1
      1
    1

    而,调用输出流对象的成员函数:

    输出为:

    1
      1
    1
    1

    再来具体看看两种办法的一些用法

    1、在输入流与输出流中使用控制符

    1)设置宽度setw(n),n即为输出固定宽度,默认以空格填充,如果加上setfill('0')即以‘0’为填充,‘’内可改为其他字符,例如:

     输出:

    0000000001
    *********1

    2)设置有效位数setprecision(n),n即为设置位数,例如:

    输出:

    221.116  //默认六位
    221.1161101 //通过设置十位

    3)设置小数点后位数,先通过setiosflags(ios::fixed)设置固定小数点的位数,再通过setprecision(n),设置小数点后固定保留n位数

    例如:

    输出:

    221.116    //默认六位
    1.100000  //固定6位,空位自动补零
    221.116110 //固定六位,后位四舍五入
    221.11611012

    4)设置为指数形式输出,setiosflags(ios::scientific),同上面设置小数后位数一样,与setprecision连用设置,不常用,不作例证

    5)按进制输出,dec为十进制,hex为16进制,而也可以通过setbase(n),直接设置n进制,例如:

    输出:

    11111
    11111
    2b67
    25547
    2b67

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

    用途类似上述,用法稍加改变,类似上文讲解二者区别时的用法;

    流成员函数setf和控制符setiosflags括号中的参数表示格式状态,它是通过格式标志来指定的。格式标志在类ios中被定义为枚举值。因此在引用这些格式标志时要在前面加上类名ios和域运算符“::”。格式标志见表13.5。

  • 相关阅读:
    TensorFLow手写字识别深度学习网络分析详解
    使用MSBUILD 构建时出错 error MSB3086: 任务未能使用 SdkToolsPath“”或注册表项“XXX”找到“LC.exe”,请确保已设置 SdkToolsPath。
    解决Win7启动时出现“windows未能启动。原因可能是最近更改了硬件或软件”的问题
    SSH安装篇之——SecureCRT连接(内网和外网)虚拟机中的Linux系统(Ubuntu)
    git push 冲突
    ubuntu快捷键收集
    ubuntu中wine下安装QQ
    ubuntu下安装无线网卡去驱动Qualcomm-Atheros-QCA9377
    spring mvc添加静态资源访问时@Controller无效的解决
    git更新到远程服务器代码
  • 原文地址:https://www.cnblogs.com/Dragon5/p/8360969.html
Copyright © 2011-2022 走看看