cpp primer plus笔记05-ios_base

std::ios_base::常见标志使用意义
boolalpha可以使用单词"true"和"false"进行输入或者输出布尔值。
oct用八进制格式显示数值。(与ios::basefield配合使用)
dec用十进制格式显示数值。(与ios::basefield配合使用)
hex用十六进制格式表示数值。(与ios::basefield配合使用)
left输出调整为左对齐。(与ios::adjustfield配合使用)
right输出调整为右对齐。(与ios::adjustfield配合使用)
scientific用科学计数法显示浮点数。(与ios::floatfield配合使用)
fixed用正常的记数方法显示浮点数(与科学计数法对应)(与ios::floatfield配合使用)
showbase输出时显示所有数值的基数。
showpos在非负数值前面显示正号。
unitbuf每次插入以后,清空缓冲区。
uppercase以大写的形式显示科学计数法中的'e'和十六进制格式的'x'。
#include<iostream>
#include <fstream>
int main()
{
	bool isFunc = false;
	std::cout.setf(std::ios_base::boolalpha);
	std::cout << isFunc << std::endl;
	std::cout.unsetf(std::ios_base::boolalpha);
	std::cout << isFunc << std::endl;

	int num1 = 34;
	std::cout.setf(std::ios_base::oct, std::ios_base::basefield);
	std::cout << num1 << std::endl;
	std::cout.unsetf(std::ios_base::oct);
	std::cout << num1 << std::endl;

	std::cout.setf(std::ios_base::dec, std::ios_base::basefield);
	std::cout << num1 << std::endl;
	std::cout.unsetf(std::ios_base::dec);
	std::cout << num1 << std::endl;

	std::cout.setf(std::ios_base::hex, std::ios_base::basefield);
	std::cout << num1 << std::endl;
	std::cout.unsetf(std::ios_base::hex);
	std::cout << num1 << std::endl;

	std::cout.setf(std::ios_base::left);
	for (int i = 1; i <= 100; i *= 10)
	{
		std::cout.width(5);
		std::cout << i << ":";
		std::cout.width(8);
		std::cout << i * i << std::endl;
	}
	std::cout.unsetf(std::ios_base::left);
	
	std::cout.setf(std::ios_base::right);
	for (int i = 1; i <= 100; i *= 10)
	{
		std::cout.width(5);
		std::cout << i << ":";
		std::cout.width(8);
		std::cout << i * i << std::endl;
	}
	std::cout.unsetf(std::ios_base::right);

	float num2 = 120.23f;
	std::cout.setf(std::ios_base::scientific);
	std::cout << num2 << std::endl;
	std::cout.unsetf(std::ios_base::scientific);

	float num3 = -2e4f;
	std::cout.setf(std::ios_base::fixed);
	std::cout << num3 << std::endl;
	std::cout.unsetf(std::ios_base::fixed);

	std::cout.setf(std::ios_base::showbase);
	std::cout << num2 << " " << num3 << std::endl;
	std::cout.unsetf(std::ios_base::showbase);

	std::cout.precision(3);
	std::cout.setf(std::ios_base::showpoint);
	std::cout << num2 << " " << num3 << std::endl;
	std::cout.unsetf(std::ios_base::showbase);
	std::cout << std::defaultfloat;

	std::cout.setf(std::ios_base::showpos);
	std::cout << num2 << " " << num3 << std::endl;
	std::cout.setf(std::ios_base::showpos);

	std::cout.setf(std::ios_base::unitbuf);
	std::cout.unsetf(std::ios_base::unitbuf);


	return 0;
}

false
0
42
34
34
34
22
34
1    :1
10   :100
100  :10000
    1:       1
   10:     100
  100:   10000
1.202300e+02
-20000.000000
120.23 -20000
120. -2.00e+04
+120. -2.00e+04

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值