1、关于输出格式问题,请问下列程序最终输出结果是什么?
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout<<setfill(' ')<<setw(4)<<setfill('i')<<setw(7)<<'m'<<endl;
system("PAUSE");
return 0;
}
结果:
setfill() 的参数只能是 <字符>,即 char,所以不能用双引号,必须是单引号。 setfill(char c) 表示用 <c> 填充位置(域)。 setw(int n) 表示位置的宽度(域宽)。 setfill() 和 setw() 在 <iomanip> 中。 源代码中: << setfill(' ') 以空格为填充符 << setw(4) 设置域宽为 4 << setfill('i') 重新设置填充符为 'i',直到下一次重新设置,填充符才会改变 << setw(7) 前一次域宽没使用,重新设置了一次,它只能对紧跟它的输出起作用 << 'm' 输出字符 'm',但因为域宽为 7,而且默认是“右对齐”,所以左边 6 个位置会用 'i' 填充 << endl 换行并刷新缓冲区 因此最终输出为 "iiiiiim"最终结果是:iiiiiim