C++ 标准库之iomanip
来源:互联网 发布:淘宝富安娜蚕丝被 编辑:程序博客网 时间:2024/06/07 06:29
C++ 语言下
头文件:#include <iomanip>
说明:是I/O流控制头文件,就像C里面的格式化输出一样
设置字符填充,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()终止已经设置的输出格式状态,在括号中应指定内容
在此需要说一下,有效位数默认是6位,即setprecision(6),即小数点前面和小数点后面加起来的位数为6个有效数字(注意会四舍五入)。
另外,科学计数法输出E与十六进制输出默认是以小写的,要换成大写需添加uppercase
而setw(n)设置宽度,若是实际宽度大于被设置的,则setw函数此时失效。
以下是测试程序:
- #include <iostream>
- #include <iomanip>
- using namespace std ;
- int main()
- {
- double PI=3.141592654;
- cout<<PI<<endl;
- cout<<setprecision(2)<<PI<<endl;
- cout<<fixed<<setprecision(2)<<PI<<endl;
- cout<<setfill('*')<<setw(20)<<setprecision(10)<<PI<<endl;
- cout<<setfill('*')<<setw(20)<<setprecision(10)<<left<<PI<<endl;
- cout<<scientific<<setprecision(10)<<PI<<endl;
- cout<<scientific<<uppercase<<setprecision(10)<<PI<<endl;
- return 0 ;
- }
结果如下:
相关课件,更多的内容在课件里面,收集于网络:下载一
以下是<iomanip>头文件的声明:
- // iomanip standard header
- #pragma once
- #ifndef _IOMANIP_
- #define _IOMANIP_
- #ifndef RC_INVOKED
- #include <istream>
- #ifdef _MSC_VER
- #pragma pack(push,_CRT_PACKING)
- #pragma warning(push,3)
- #endif /* _MSC_VER */
- _STD_BEGIN
- // TEMPLATE STRUCT _Fillobj
- template<class _Elem>
- struct _Fillobj
- { // store fill character
- _Fillobj(_Elem _Ch)
- : _Fill(_Ch)
- { // construct from fill character
- }
- _Elem _Fill; // the fill character
- };
- // TEMPLATE FUNCTION setfill
- template<class _Elem> inline
- _Fillobj<_Elem> __CLRCALL_OR_CDECL setfill(_Elem _Ch)
- { // return a _Fillobj manipulator
- return (_Fillobj<_Elem>(_Ch));
- }
- template<class _Elem,
- class _Traits> inline
- basic_istream<_Elem, _Traits>&
- __CLRCALL_OR_CDECL operator>>(basic_istream<_Elem, _Traits>& _Istr,
- const _Fillobj<_Elem>& _Manip)
- { // set fill character in input stream
- _Istr.fill(_Manip._Fill);
- return (_Istr);
- }
- template<class _Elem,
- class _Traits> inline
- basic_ostream<_Elem, _Traits>&
- __CLRCALL_OR_CDECL operator<<(basic_ostream<_Elem, _Traits>& _Ostr,
- const _Fillobj<_Elem>& _Manip)
- { // set fill character in output stream
- _Ostr.fill(_Manip._Fill);
- return (_Ostr);
- }
- // TEMPLATE STRUCT _Smanip
- template<class _Arg>
- struct _Smanip
- { // store function pointer and argument value
- _Smanip(void (__cdecl *_Left)(ios_base&, _Arg), _Arg _Val)
- : _Pfun(_Left), _Manarg(_Val)
- { // construct from function pointer and argument value
- }
- void (__cdecl *_Pfun)(ios_base&, _Arg); // the function pointer
- _Arg _Manarg; // the argument value
- };
- template<class _Elem,
- class _Traits,
- class _Arg> inline
- basic_istream<_Elem, _Traits>& __CLRCALL_OR_CDECL operator>>(
- basic_istream<_Elem, _Traits>& _Istr, const _Smanip<_Arg>& _Manip)
- { // extract by calling function with input stream and argument
- (*_Manip._Pfun)(_Istr, _Manip._Manarg);
- return (_Istr);
- }
- template<class _Elem,
- class _Traits,
- class _Arg> inline
- basic_ostream<_Elem, _Traits>& __CLRCALL_OR_CDECL operator<<(
- basic_ostream<_Elem, _Traits>& _Ostr, const _Smanip<_Arg>& _Manip)
- { // insert by calling function with output stream and argument
- (*_Manip._Pfun)(_Ostr, _Manip._Manarg);
- return (_Ostr);
- }
- // INSTANTIATIONS
- _MRTIMP2 _Smanip<ios_base::fmtflags> __cdecl resetiosflags(ios_base::fmtflags);
- _MRTIMP2 _Smanip<ios_base::fmtflags> __cdecl setiosflags(ios_base::fmtflags);
- _MRTIMP2 _Smanip<int> __cdecl setbase(int);
- _MRTIMP2 _Smanip<streamsize> __cdecl setprecision(streamsize);
- _MRTIMP2 _Smanip<streamsize> __cdecl setw(streamsize);
- _STD_END
- #ifdef _MSC_VER
- #pragma warning(pop)
- #pragma pack(pop)
- #endif /* _MSC_VER */
- #endif /* RC_INVOKED */
- #endif /* _IOMANIP_ */
- /*
- * Copyright (c) 1992-2006 by P.J. Plauger. ALL RIGHTS RESERVED.
- * Consult your license regarding permissions and restrictions.
- V5.02:0009 */
阅读全文
0 0
- C++ 标准库之iomanip
- C++ 标准库之iomanip
- C++ 标准库之iomanip
- C++标准库之<iomanip>
- C++ 标准库之iomanip
- 标准库头文件 iomanip
- C++标准库——iomanip
- 语法:C++标准库中的iomanip
- C&C++之标准库
- C&C++之标准库
- iomanip
- iomanip
- iomanip
- iomanip
- iomanip
- iomanip
- C标准库之零:C标准库概述
- C标准库学习之其他
- 各种软件安装教程以及好用软件的推荐,也方便自己日后寻找。
- 选择排序,冒泡排序,双向冒泡排序
- 笑着理解设计模式-java--代理模式
- GitHub详解(2)
- 在迁移到HTTPS之前需要考虑的事情
- C++ 标准库之iomanip
- 机器人(n舵机)电源解决方案
- 聊聊前端开发中关于闭包的那点事
- 75. Sort Colors
- Microsoft Access、MySQL 以及 SQL Server 所使用的数据类型和范围
- spring基本概念
- web工程师眼中的MVC模式
- 模拟实现C语言中的库函数atoi
- 本地主机与虚拟主机之间互传文件