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
相关推荐
weixin_448119941 小时前
Datawhale DeepSeek Harness 技术入门与架构原理 笔记4
笔记·架构
·present·11 小时前
CSAPP(lecture 4_01)
c语言·c++
FPGA小迷弟11 小时前
用 Claude Code 重构遗留系统:从评估到落地的完整实践指南
c++·python·ai·plotly·django·ai编程·claude
程序员-King.11 小时前
【ROS1】Noetic 开发工作流程与常用命令
c++·ubuntu·ros
云深麋鹿11 小时前
C++ | 基于红黑树实现mymap与myset
开发语言·c++
果壳science13 小时前
张祥前实验如何获取正电荷
笔记·科技·嵌入式硬件·硬件工程·制造
傲世仙尊13 小时前
string增删查改-insert-erase-replace与find加substr组合技
c++
大叔学Linux14 小时前
FreeRTOS任务切换笔记
arm开发·笔记
·present·14 小时前
CSAPP(lecture 3)
c++
别动我齐刘海15 小时前
机器人 C++ / 系统联调补强2——异常处理、Protobuf
linux·c++·人工智能·学习·算法·机器学习·机器人