C++ 格式化输出

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值