格式化输出函数setw与setfill的使用

我们首先要知道,填充符是默认为空格的,如果你只是单纯需要队列整齐,那么setfill是用不着,不过一旦要加入其他符号,那么就要设置填充符了。

setw跟setfill都是要用到头文件<iomanip>,那么接下来先介绍简单的setw用法。

一、setw函数

一般的使用格式是:cout<<setw(n)<<i<<endl;

先举个简单的例子:我们分别要输出1~10的本身及其平方

#include<iostream>
#include<iomanip>
using namespace std;
int main() {
	for(int i=1;i<=10;i++)
	cout<<setw(4)<<i<<setw(4)<<i*i<<endl;
	return 0;
}

二、setfill函数

开头说过,setfill是在想要填充的不是空格时,才要用的,这个也很简单

比如说我们想要填充‘*’,那么就这么写:cout<<setfill('*')<<setw(4)<<输出的数<<endl

值得一提的是,如果你接下来又要需要空格填充时,还得再重置:cout<<setfill(' ')<<endl

那么检验一下学习成果吧

题目要求:格式化输出乘法口诀表(如下图)

#include<iostream>
#include<iomanip>
using namespace std;
int main() {
	int colwidth(4);
	int max(10);

	cout << setw(colwidth) << '*' << '|';
	for (int i = 1; i <= max; i++)
		cout << setw(colwidth) << i;
	cout << endl;
	//打印表头

	cout << setfill('-') << setw(colwidth) << "" << '+'
	     << setw(max * colwidth) << "" << endl;
	//设置填充符

	cout << setfill(' ');
	//重置填充符

	for (int i = 1; i <= 10; i++) {
		cout << setw(colwidth) << i << '|';
		for (int j = 1; j <= i; j++)
			cout << setw(colwidth) << j*i;
		cout << endl;
	}
	//打印每一行 
	system("pause");
	return 0;
}

那么有的好兄弟又会挑茬了,要是我想填充在右边呢?

那么好,只需要加入一个left,系统输出结果就会自动左对齐,填充在右边

cout<<left<<setw( )<<输出数字<<endl;

如下图

 

 

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cout是C++中的标准输出流对象,可以用于格式化输出。为了按照一定的格式进行输出,可以使用流操作算子或者成员函数进行控制。使用流操作算子时,可以使用一系列的格式控制符来指定输出的格式。例如,%X可以用于按十六进制输出整数,%.2f可以用于输出浮点数时保留小数点后面两位,setw()可以用于指定输出的宽度等。 需要注意的是,每次使用setw()设置输出宽度时,只会影响下一次的输出。如果需要多次指定输出宽度,需要在每次输出前使用setw()来设置。此外,setw()也可以影响cin在读入字符串时的行为。 以下是一个示例程序,演示了如何使用setw()和流操作算子进行格式化输出: #include <iostream> #include <iomanip> using namespace std; int main() { int num = 123; float f = 3.14159; cout << "Formatted output:" << endl; cout << "Number in hexadecimal: " << hex << num << endl; cout << "Float with 2 decimal places: " << fixed << setprecision(2) << f << endl; cout << "Number with width of 6, left-padded with 0: " << setw(6) << setfill('0') << num << endl; return 0; } 运行这段代码将会输出以下结果: Formatted output: Number in hexadecimal: 7b Float with 2 decimal places: 3.14 Number with width of 6, left-padded with 0: 000123 在上述示例中,我们先使用hex设置输出为十六进制形式,然后使用fixed和setprecision(2)设置浮点数的小数点位数,最后使用setw(6)和setfill('0')设置输出宽度为6,左侧用0填充。通过这些控制符,我们可以实现各种格式化的输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值