![C++程序设计与案例分析](https://wfqqreader-1252317822.image.myqcloud.com/cover/731/687731/b_687731.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.2.5 输入/输出格式操作符
利用输入/输出格式操作符进行输入/输出前,要在程序的开头处添加 iomanip.h 头文件。表3.1给出了I/O流的常用格式操作符。
表3.1 I/O流的常用格式操作符
![](https://epubservercos.yuewen.com/FB2B43/3590497403462801/epubprivate/OEBPS/Images/figure_0062_0002.jpg?sign=1739357386-0dZSwM5PFt7VcdeApCrGof8FIOPOjNnM-0-ab177fd4a724ff169cdda269fdef404b)
注意:当数据输出的实际宽度大于设定的宽度时,数据按实际宽度输出;若实际宽度小于设定的宽度,则在数据前面显示空白。即以默认的空格字符来填充。
【例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; }
运行程序,输出的结果如下:
![](https://epubservercos.yuewen.com/FB2B43/3590497403462801/epubprivate/OEBPS/Images/figure_0063_0001.jpg?sign=1739357386-P0AC7CSfuSLboKyJtqule8D9ocGmDw3L-0-130b7a97b8cffdc46171b8ae946ad107)
【例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; }
程序运行结果如下。
![](https://epubservercos.yuewen.com/FB2B43/3590497403462801/epubprivate/OEBPS/Images/figure_0064_0001.jpg?sign=1739357386-Joe09daVNYRVgXNqtDh66BPnQqBQR83P-0-b56b76350166c72e7bf620f68040c3a0)