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 小时前
main.cpp注册 C++ 类到 QML 元对象系统
c++·qt
YYYing.1 小时前
【C++进阶系列 (二)】关于线程堆栈的那些事——函数调用过程
开发语言·c++·函数·线程堆栈
啵啵啵鱼2 小时前
DS-顺序表
java·数据结构·笔记·后端·链表·obsidian
键盘会跳舞2 小时前
【C++多线程】死锁诊断工具实战:从 Windows 到 Linux 的全链路排查
linux·c++·windows·死锁
xian_wwq3 小时前
【学习笔记】深度认知系列-第13讲AI Agent时代到来——从“回答问题”到“执行任务”
人工智能·笔记·学习
程序猿炎义3 小时前
【llm-algo-leetcode学习笔记】量化优化手段
笔记·学习
HugoStudio_SWAN3 小时前
洛谷 P10719 \[GESP202406 五级] 黑白格——暴力美学与图像处理的最小外接矩形
c++·图像处理·人工智能·学习·程序人生·算法·目标跟踪
jimy13 小时前
C++ 的 “移动语义”——Move Semantics
开发语言·c++
xian_wwq3 小时前
【学习笔记】深度认知系列- 第15讲 AI算力战争——GPU、光通信与太空数据中心
笔记·学习
雨田言炎3 小时前
2026/9/5 C复习笔记(一)
c语言·笔记