C++助教篇5_Week3不完全知识点总结

cout格式化输出利用setf/unsetf or flag来设置cout的格式,前者是在当前状态下追加or删除指定格式,后者是重新设置一个新的格式。如cout.setf(ios::right); //右对齐下面从常见格式、对齐与占宽、进制与+/-号、浮点数格式设置来介绍cout格式化输出常见格式ios::dec 以10进制表示整数ios::hex 以16进制表示整数ios::oct 以8进制表示整数ios::showbase 为整数添加一个表示其进制的前缀ios::intern
摘要由CSDN通过智能技术生成

cout格式化输出

利用setf/unsetf or flag来设置cout的格式,前者是在当前状态下追加or删除指定格式,后者是重新设置一个新的格式。如

cout.setf(ios::right);  //右对齐

下面从常见格式、对齐与占宽、进制与+/-号、浮点数格式设置来介绍cout格式化输出

常见格式

ios::dec		以10进制表示整数
ios::hex		以16进制表示整数
ios::oct		以8进制表示整数
ios::showbase	为整数添加一个表示其进制的前缀
ios::internal	在符号位和数值的中间插入需要数量的填充字符以使串两端对齐
ios::left		在串的末尾插入填充字符以使串居左对齐
ios::right		在串的前面插入填充字符以使串居右对齐
ios::boolalpha	将bool类型的值以true或flase表示,而不是1或0
ios::fixed		将符点数按照普通定点格式处理(非科学计数法)
ios::scientific	将符点数按照科学计数法处理(带指数域)
ios::showpoint	在浮点数表示的小数中强制插入小数点(默认情况是浮点数表示的整数不显示小数点)
ios::showpos	强制在正数前添加+号
ios::skipws		忽略前导的空格(主要用于输入流,如cin)
ios::unitbuf	在插入(每次输出)操作后清空缓存
ios::uppercase	强制大写字母

setf有两种形式

  1. 一个参数的,如cout.setf(ios::right);可以设置为指定的格式(设置为右对齐)
  2. 两个参数的,如cout.setf(ios::right,ios::adjustfield);可以取消原来的一种格式,设置一种新的格式(取消其他对齐,设置为右对齐)
  3. 同属一个参数的,但是可以设置多种格式,需要通过|来组合格式,如cout.setf(ios::right | ios::hex);(设置为16进制右对齐)

但是,通过格式控制输出不能满足多种格式的要求,在这种情况下,我们可以使用STL提供的<iomanio>来实现。<iomanip>提供了如setioflagssetbasesetfillsetwsetprecision来方便控制格式

下面通过代码一个个说明其用途(请运行代码查看效果)

对齐与占宽

// endl是flush buffer的newline,'\n' not ...

cout.flags(ios::left);  // ios::left左对齐,设置格式
cout << setw(20) << -123.456 << "hello" << endl;  // setw()是设置宽度
// equal to cout << left << setw(20) << -123.456 << "hello" << endl;
// 一次性,更方便

cout.flags(ios::internal);  // ios::interal两端对齐
cout << setw(20) << -123.456 << "hello" << endl;
// equal to cout << interal << setw(20) << -123.456 << "hello" << endl;

cout.flags(ios::right);  // ios::right右对齐
cout << setfill('*') << setw(20) << -123.456 << "hello" << endl;
// setw()默认使用空格填充,可以通过setfill()来自定义填充字符,一旦更改
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值