在c++程序里面经常见到下面的头文件:
#include <iomanip>
io代表输入输出,manip是manipulator(操纵器)的缩写(在c++上只能通过输入缩写才有效。) 主要是对cin,cout之类的一些操纵运算子,比如setfill,setw,setbase,setprecision等等。它是I/O流控制头文件,就像C里面的格式化输出一样。 以下是一些常见的控制函数的: dec 置基数为10 相当于"%d" hex 置基数为16 相当于"%X" oct 置基数为8 相当于"%o" setfill( ‘c’ ) 设填充字符为c setprecision( n ) 设显示有效数字为n位 setw( n ) 设域宽为n个字符 这个控制符的意思是保证输出宽度为n。如:
cout << setw( 3 ) << 1 << setw( 3 ) << 10 << setw( 3 ) << 100 << endl;
_ _1_10100
(默认是右对齐)当输出长度大于3时(<<1000),setw(3)不起作用。
iomanip中比较常用的函数有以下几个: setw(int n); 预设输出宽度 setfill(Char c); 使用c作为填充字符 setbase(int n); 预设整数输出进制 setprecision(int n) 用于控制输出流浮点数的精度,整数n代表显示的浮点数数字的精度(使用四舍五入)。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double n;
cin >> n;
cout << n << endl;
cout << setprecision(1) << n <<endl
<< setprecision(2) << n <<endl;
cout << setfill('*') << setw(7) << n << endl;
return 0;
}
编号 方法和描述 1 setiosflags: - 它用于设置格式标志。 2 resetiosflags: - 用于重置格式标志。 3 setbase: - 它用于设置basefield标志。 4 setfill: - 它用于设置填充字符 5 setprecision: - 它用于设置小数精度。 6 setw: - 它用于设置字段宽度。 7 get_money: - 它用于获得货币值。 8 put_money: - 它用来设置计算货币的值。 9 get_time: - 它用于获取日期和时间。 10put_time: - 它用于放置(或设置)日期和时间。
控 制 符 | 作 用 |
---|
dec | 设置整数为十进制 | hex | 设置整数为十六进制 | oct | 设置整数为八进制 | setbase(n) | 设置整数为n进制(n=8,10,16) | setfill(n) | 设置字符填充,c可以是字符常或字符变量 | setprecision(n) | 设置浮点数的有效数字为n位 | setw(n) | 设置字段宽度为n位 | setiosflags(ios::fixed) | 设置浮点数以固定的小数位数显示 | setiosflags(ios::scientific) | 设置浮点数以科学计数法表示 | setiosflags(ios::left) | 输出左对齐 | setiosflags(ios::right) | 输出右对齐 | setiosflags(ios::skipws) | 忽略前导空格 | setiosflags(ios::uppercase) | 在以科学计数法输出E与十六进制输出X以大写输出,否则小写。 | setiosflags(ios::showpos) | 输出正数时显示"+"号 | setiosflags(ios::showpoint) | 强制显示小数点 | resetiosflags() | 终止已经设置的输出格式状态,在括号中应指定内容 |
#include<iostream>
#include <iomanip>
using namespace std;
using std::cin;
using std::cout;
using std::endl;
using std::setprecision;
using std::setiosflags;
const double PI = 3.14159;
class Circle{
public:
Circle();
Circle(double mr):radius(mr){}
double squrue(){
return radius * radius * PI;
}
private:
double radius;
};
int main(){
double r;
cin >> r;
Circle C(r);
cout << setprecision(3) << fixed << showpoint <<C.squrue() << endl;
return 0;
}
参考链接:https://www.php.cn/faq/423964.html https://www.jianshu.com/p/744cfb935c9b https://www.likecs.com/show-307344357.html
|