C++ 输出格式控制

写在前面: 我是「虐猫人薛定谔i」,一个不满足于现状,有梦想,有追求的00后
\quad
本博客主要记录和分享自己毕生所学的知识,欢迎关注,第一时间获取更新。
\quad
不忘初心,方得始终。自己的梦想,终有一天会实现!
\quad

❤❤❤❤❤❤❤❤❤❤

C++ 提供了许多控制数据输入输出格式的函数和操纵符,如setprecision、setw、right等,它们都在头文件iomanip中定义的,应用它们时要包含该头文件。

设置浮点数的精度

在需要设置输出数据的精度时,可以用操纵函数setprecision()

setprecision(n)

其中,n代表有效位数,包括整数位数和小数位数。
用setprecision函数设置输出数据的精度后,会一直持续到再次用setprecision函数改变输出精度为止。

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
	double pi = 3.1415926;
	cout << pi <<endl;
	cout << setprecision(8) << pi <<endl;
	cout << setprecision(3) << pi <<endl;
	return 0;
}

在这里插入图片描述

设置输出域宽

可以用setw()函数来设置输出数据占用的列数(域宽,即占用的字符个数)

setw(n)

其中,n是输出数据占用屏幕的字符数,默认输出数据为右对齐。若输出数据的位数比n小,则左边留空,若输出数据的实际位数比n大,则输出数据将自动扩展到所需占用的列数。
setw()只对紧随其后的一个输出数据有效。

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
	double pi = 3.1415926;
	cout << pi <<endl;
	cout << setw(10) << pi <<endl;
	cout << setw(3) << pi <<endl;
	return 0;
}

在这里插入图片描述

设置对齐方式

setiosflags()和resetiosflags()可以用来设置或取消输入/输出数据的各种格式,包括改变数制基数、设置浮点数的精度、转换字母大小写,设置对齐方式等。

setiosflags(long f);
resetiosflags(long f);
//表示左对齐的常数值
ios::left
//表示右对齐的常数值
ios::right

C++ 在默认情况下,是按右对齐的方式输出数据的。
当我们用setiosflags()设置输出对齐方式成功后,将一直有效,直到用resetiosflags()取消它为止。

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
	int i = 123456789;
	cout << setiosflags(ios::left) << i <<endl;
	cout << setiosflags(ios::left) << setw(10) << i << 12345 << endl;
	cout << setiosflags(ios::left) << setw(3) << i << 12345 << endl;
	return 0;
}

在这里插入图片描述

数制基数

iostream头文件中预定义了hex、oct、dec等操纵符,分别表示十六进制、八进制和十进制数。默认情况下,C++ 按照十进制的形式输入、输出数据。当要按其他进制输入、输出数据时,就需要在cin和cout语句中指定数字的基数。

十进制数:直接输入数据本身
八进制:在输入数据时,数据前加0
十六进制:在输入数据时,数据前加0x或0X

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
	int num = 11;
	cout << num << endl;
	cout << oct << num << endl;
	cout << hex << num << endl;
	return 0;
}

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章