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'。
cpp 复制代码
#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;
}
text 复制代码
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
相关推荐
程序喵大人1 小时前
【C++进阶】STL算法与函数对象 - 09 函数对象保存状态并复用规则
开发语言·c++·算法·stl·函数对象
ShineWinsu7 小时前
对于C++:auto_ptr、unique_ptr、shared_ptr的模拟实现
c++·面试·笔试·智能指针·unique_ptr·shared_ptr·auto_ptr
2501_926978339 小时前
AGI 的四种瓶颈:资源型还是发现型--以及DSH的位置
人工智能·经验分享·笔记·ai写作
XLYcmy9 小时前
京东 算法实习一面 下+手撕
c++·python·llm·概率论·数据处理·训练·codebert
反转180度10 小时前
Qt 6 + C++17 实现 SFTP 批量部署:工业设备运维工具实战解析
运维·c++·qt
liuqs33210 小时前
nat123安卓和nat123全端口选型指南,映射工具怎么挑
网络·笔记
xian_wwq10 小时前
【学习笔记】光伏“四可”装置纵密模块--配置方法和原理
笔记·学习
码匠许师傅11 小时前
【C++ 面试真题】聊聊 C++ 的多继承与虚继承
开发语言·c++·面试
有点。13 小时前
C++认识数
开发语言·c++
2023自学中13 小时前
Qt 简易聊天室(第二篇),单线程 改为 多线程,方便后续增加文件传输功能
c++·qt