对象数组的应用
#include <iomanip>
io代表输入输出,manip是manipulator(操纵器)的缩写(在c++上只能通过输入缩写才有效。)
iomanip的作用:
主要是对cin,cout之类的一些操纵运算子,比如setfill,setw,setbase,setprecision等等。它是I/O流控制头文件,就像C里面的格式化输出一样.▲ setprecision用法
使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。
如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。setiosflags(ios::fixed)是用定点方式表示实数。
如果与setiosflags(ios::scientific)合用, 可以控制指数表示法的小数位数。setiosflags(ios::scientific)是用指数方式表示实数。
setiosflags(ios::fixed) 固定的浮点显示
setiosflags(ios::scientific) 指数表示
setiosflags(ios::left) 左对齐
setiosflags(ios::right) 右对齐
setiosflags(ios::skipws) 忽略前导空白
setiosflags(ios::uppercase) 16进制数大写输出
setiosflags(ios::lowercase) 16进制小写输出
setiosflags(ios::showpoint) 强制显示小数点
setiosflags(ios::showpos) 强制显示符号
# include <iostream> # include <string> #include <iomanip> using namespace std; class student { private: int ID; string name; int math; int english; int computer; public: void set_stu_info() { cin>>ID; cin>>name; cin>>math; cin>>english; cin>>computer; } int sum() { return math+english+computer; } double average() { return (math+english+computer)/3.0; } void print()//类里面调用成员函数不需要加对象名。 { cout<<ID<<'\t'<<name<<'\t'<<math<<'\t'<<english<<'\t'; cout<<computer<<'\t'<<sum()<<'\t'<<setiosflags(ios::fixed)<<setprecision(1)<<average()<<endl; } }; int main() { int i; student stud[5]; for(i=0;i<5;i++) { stud[i].set_stu_info(); } cout<<"Input the messages of five students(StudentID Name Math English Computer )"<<endl<<endl; cout<<"StuID Name Math Eng Com Total Average"<<endl; for(i=0;i<5;i++) { stud[i].print(); } return 0; }