C++ 格式化输出
enum {
skipws = 0x0001, // 跳过当天及后面所有连续的空白符。
left = 0x0002,
right = 0x0004,
internal = 0x0008, // 在指定的域宽内数值的符号按左对齐、数值本身按右对齐输出。
dec = 0x0010, // 10
oct = 0x0020, // 8
hex = 0x0040, // 16
showbase = 0x0080, // 8进制:0、16进制:0x ,10无。
showpoint = 0x0100,
uppercase = 0x0200,
showpos = 0x0400,
scientific = 0x0800,
fixed = 0x1000,
unitbuf = 0x2000,
stdio = 0x4000
};
long setf(long _f); // 根据参数_f设置相应的格式化标志,返回当前的设置
long setf(long _l,long _f); // 取消_l的设置,根据_f设置格式化标志,返回当前的设置
long unsetf(long _f); // 根据参数_f取消相应的格式化标志,返回当前的设置
long flags(long _f); // 根据参数_f重新设置相应的格式化标志,返回当前的设置
long flags() const; // 返回当前用于I/O流控制的格式化标志设置
int width(int w); // 设置下一个数值的输出域宽为w,返回为输出上一个数值所设置的域宽
int width() const; // 返回当前的输出域宽
char fill(char c); // 设置流中用于输出数据的填充字符为c,返回此前设置的填充字符。系统预设置的填充字符为空格
char fill() const; // 返回当前使用的填充字符
int precision(int n); // 设置浮点数的输出精度为n,返回此前设置的输出精度。系统预设置的输出精度为
int precision() const; // 返回浮点数输出精度,即输出的有效数字的位数
//
#include "stdafx.h"
#include <iostream>
#include <iomanip>
int _tmain(int argc, _TCHAR* argv[])
{
int x = 1000;
double y = 1.23456789;
std::cout << "默认x值:" << x << std::endl;
std::cout << "十进制:" << std::dec << x << std::endl; //dec oct hex 会一直作用。
std::cout << "八进制:" << std::oct << x << std::endl;
std::cout << "十六进制:" << std::hex << x << std::endl;
std::cout << "十六进制(大写字母):" << std::hex << std::uppercase << x << std::endl << std::endl;
std::cout << "默认y值(左对齐且有效数字位数为6):" << y << std::endl;
std::cout << "宽度为10并右对齐:" << std::setw(10) << std::right << y << std::endl;
std::cout << "宽度为8:" << std::setw(8) << y << std::endl;
std::cout << "宽度为4:" << std::setw(4) << y << std::endl;
std::cout << "用*号填充空位(10位宽度):" << std::setfill('*') << std::setw(10) << y << std::endl; //setw(int i) 只对紧随的数据显示有影响。控制多个数据要多个setw()method.
std::cout << "设精度为3输出y(不包括小数点):" << std::setprecision(3) << y << std::endl; //setprecision(int i) 会一直作用
std::cout << "设精度为8输出y(不包括小数点):" << std::setprecision(8) << y << std::endl;
std::cout << "显示正负号:" << std::showpos << y << std::endl;
std::cout << "用科学计数法表示y:" << std::scientific << y << std::endl;
std::cout << "用科学计数法表示y(控制E前数据的小数点后位数):" << std::scientific << std::setprecision(3) << y << std::endl;
int i = 0;
std::cin >> i;
return 0;
}
// 输出
默认x值:1000
十进制:1000
八进制:1750
十六进制:3e8
十六进制(大写字母):3E8
默认y值(左对齐且有效数字位数为6):1.23457
宽度为10并右对齐: 1.23457
宽度为8: 1.23457
宽度为4:1.23457
用*号填充空位(10位宽度):***1.23457
设精度为3输出y(不包括小数点):1.23
设精度为8输出y(不包括小数点):1.2345679
显示正负号:+1.2345679
用科学计数法表示y:+1.23456789E+000
C++ 格式化输出
最新推荐文章于 2024-08-19 19:43:11 发布