c++输入输出格式的控制

c++输入输出格式的控制

  (2011-06-14 21:50:12)
标签: 

输入出格式控制

分类: c编程

1.有各个关标记位含义的表:

标记位

含义

boolalpha 如开启,则输入和输出使用bool值(即Ture或False)
showbase 如开启,则对于输出,使用C++ 基数前缀(0,0x)
showpoint 如开启,则显示末尾的小数点
uppercase 如开启,则对于16进制,使用大写字母;对于10进制,使用E表示法
showpos 如开启,则在正数前面加上+

标记位

含义

dec 如开启,则使用基数10(进行输出)
oct 如开启,则使用基数8
hex 如开启,则使用基数16
fixed 如开启,则使用定点计数法
scientific 如开启,则使用科学计数法
left 如开启,则使用左对齐
right 如开启,则使用右对齐
internal 如开启,则符号或基数前缀左对齐,值右对齐

标记位

含义

skipws 如开启,则跳过输入流中的空白字符
unitbuf 如开启,则每次输出操作后都会清空缓冲区

 

2.(1)setw()的用法:

setw()是给紧跟着后面的数据预定一个空间,如果该数据小于这个空间,在左边用0补齐;setw()只对紧跟在他后面的数据有效。

例如:cout<<setw(7)<<54421<<set(4)<<356<<endl;

结果:

..54421.356(注意:这里的点号代表空格。)

(2)setprecision(n)的用法:

*1.用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。
*2.如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。setiosflags(ios::fixed)是用定点方式表示实数。
*3.如果与setiosnags(ios::scientific)合用,可以控制指数表示法的小数位数。setiosflags(ios::scientific)是用指数方式表示实数。
例如,下面的代码分别用浮点、定点和指数方式表示一个实数:

//*********************
//** ch2_1.cpp **
//*********************
#include <iostream.h>
#include <iomanip.h> //要用到格式控制符
void main()
{
double amount = 22.0/7;
cout <<amount <<endl;
cout <<setprecision(0) <<amount <<endl
<<setprecision(1) <<amount <<endl
<<setprecision(2) <<amount <<endl
<<setprecision(3) <<amount <<endl
<<setprecision(4) <<amount <<endl;

cout <<setiosflags(ios::fixed);
cout <<setprecision(8) <<amount <<endl;

cout <<setiosflags(ios::scientific) <<amount <<endl;
cout <<setprecision(6); //重新设置成原默认设置
}

运行结果为:
3.14286
3
3
3.1
3.14
3.143
3.14285714
3.14285714e+00

该程序在32位机器上运行通过。
在用浮点表示的输出中,setprecision(n)表示有效位数。
第1行输出数值之前没有设置有效位数,所以用流的有效位数默认设置值6:

第2个输出设置了有效位数0,C++最小的有效位数为1,所以作为有效位数设置为1来看待:

第3~6行输出按设置的有效位数输出。
在用定点表示的输出中,setprecision(n)表示小数位数。
第7行输出是与setiosflags(ios::fixed)合用。所以setprecision(8)设置的是小数点后面的位数,而非全部数字个数。
在用指数形式输出时,setprecision(n)表示小数位数。
第8行输出用setiosflags(ios::scientific)来表示指数表示的输出形式。其有效位数沿用上次的设置值8。
3.setfill()函数:

setfill(int _m) 随setw(int _w)一起使用 意思是在set(int _w)设定后的空格填充指定的字符。

4.

(1)cout.setf(ios::left);

(2)cout.setf(ios::right);

(3)cout.unsetf (ios::left);

第一个是设置格式为左对齐,第二个设置为右对齐,第三个取消左对齐。三者用法:当设置为右对齐之后,如果其后又设置了(3),则(3)这条代码不起作用,格式始终是右对齐,除非之后重新设置了(1)这条代码,则(1)这条代码才会改变右对齐的输出格式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值