
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.2.5 输入/输出格式操作符
利用输入/输出格式操作符进行输入/输出前,要在程序的开头处添加 iomanip.h 头文件。表3.1给出了I/O流的常用格式操作符。
表3.1 I/O流的常用格式操作符

注意:当数据输出的实际宽度大于设定的宽度时,数据按实际宽度输出;若实际宽度小于设定的宽度,则在数据前面显示空白。即以默认的空格字符来填充。
【例3.4】 I/O流常用格式操作符1。
#include <iostream> #include <iomanip> using namespace std; int main ( ) {float h,r,l,s,sq,vq,vz; const float pi=3.1415926; cout<<"please enter r,h:"; cin>>r>>h; l=2*pi*r; s=r*r*pi; sq=4*pi*r*r; vq=3.0/4.0*pi*r*r*r; vz=pi*r*r*h; cout<<setiosflags(ios::fixed)<<setiosflags(ios::right) <<setprecision(2); cout<<"l= "<<setw(10)<<l<<endl; cout<<"s= "<<setw(10)<<s<<endl; cout<<"sq="<<setw(10)<<sq<<endl; cout<<"vq="<<setw(10)<<vq<<endl; cout<<"vz="<<setw(10)<<vz<<endl; return 0; }
运行程序,输出的结果如下:

【例3.5】I/O流常用格式操作符2。
#include <iostream> #include <iomanip> using namespace std; int main ( ) {double c=3.1415926; cout<<setfill('*')<<setiosflags(ios::left)<<setw(20)<<setprecision(0)<<c<<ends; cout<<setfill('*')<<setiosflags(ios::left)<<setw(20)<<setprecision(1)<<c<<endl; cout<<setfill('*')<<setiosflags(ios::left)<<setw(20)<<setprecision(2)<<c<<ends; cout<<setfill('*')<<setiosflags(ios::left)<<setw(20)<<setprecision(3)<<c<<endl; cout<<setfill('*')<<setiosflags(ios::left)<<setw(20)<<setprecision(4)<<c<<ends; cout<<setfill('*')<<setiosflags(ios::left)<<setw(20)<<setprecision(5)<<c<<endl; cout<<setfill('*')<<setiosflags(ios::left)<<setw(20)<<setprecision(6)<<c<<ends; cout<<setfill('*')<<setiosflags(ios::left)<<setw(20)<<setprecision(7)<<c<<endl; }
程序运行结果如下。
