I/O流类库(五)
2016-01-05 18:48
169 查看
输出流格式化
以操纵子方式格式化数据输入输出的格式控制使用系统头文件< iomanio >中提供的操作符。把它作为插入操作符<<的输出对象即可。
以成员函数方式格式化
通过调用流的成员函数控制格式,如setf、unsetf、width、fill、precision等。优点是在设置格式同时,可以返回以前的设置,便于恢复原来的设置。
操纵子方式
常用的流操纵子ios类中的枚举常量
#include<iostream> #include<iomanip> using namespace std; //通过操纵子方式进行格式化输出 //宽度控制 //对齐控制 //填充控制 //精度控制 //进制输出 int main(void) { system("chcp 936"); //如果控制台不支持输出中文,则加上这句话即可 int n = 64; double d = 123.45; double d2 = 0.0187; cout << "====================宽度控制====================" << endl; cout << n << '#' << endl; cout << setw(10) << n << '#' << n << endl; //宽度控制不会影响下一个输出 cout << "====================对齐控制====================" << endl; cout << setw(10) << setiosflags(ios::left) << n << '#' << endl; cout << setw(10) << left << n << '#' << endl; cout << setw(10) << n << '#' << endl; //对齐控制会影响下一个输出 cout << setw(10) << resetiosflags(ios::left) << n << '#' << endl;//还原 cout << "====================填充控制====================" << endl; cout << setw(10) << setfill('?') << n << '#' << endl; cout << setw(10) << n << '#' << endl; //填充控制会影响下一个输出 cout << setw(10) << setfill(' ') << n << '#' << endl; //还原 cout << "====================精度控制====================" << endl; cout << setprecision(4) << d << endl; //控制有效数字位数 cout << setprecision(2) << d2 << endl; cout << setiosflags(ios::fixed); //控制小数点后数字位数 cout << setprecision(4) << d << endl; cout << setprecision(2) << d2 << endl; cout << "====================进制输出====================" << endl; cout << setiosflags(ios::showbase); cout << n << endl; cout << oct << n << endl; cout << hex << n << endl; cout << endl; cout << setbase(10) << n << endl; cout << setbase(8) << n << endl; cout << setbase(16) << n << endl; return 0; }
成员函数方式
ios类的成员函数#include<iostream> using namespace std; //通过成员函数方式进行格式化输出 //宽度控制 //对齐控制 //填充控制 //精度控制 //进制输出 int main(void) { system("chcp 936"); //如果控制台不支持输出中文,则加上这句话即可 int n = 64; double d = 123.45; double d2 = 0.0187; cout << "====================宽度控制====================" << endl; cout << n << '#' << endl; cout.width(10); cout<< n << '#' << n << endl; //宽度控制不会影响下一个输出 cout << "====================对齐控制====================" << endl; cout.width(10); cout.setf(ios::left); cout<< n << '#' << endl; cout.width(10); cout << n << '#' << endl; //对齐控制会影响下一个输出 cout.width(10); cout.unsetf(ios::left); cout << n << '#' << endl; cout << "====================填充控制====================" << endl; cout.width(10); cout.fill('?'); cout<< n << '#' << endl; cout.width(10); cout << n << '#' << endl; //填充控制会影响下一个输出 cout.width(10); cout.fill(' '); cout << n << '#' << endl; //还原 cout << "====================精度控制====================" << endl; cout.precision(4); //控制有效数字位数 cout << d << endl; cout.precision(2); cout << d2 << endl; cout.setf(ios::fixed); //控制小数点后数字位数 cout.precision(4); cout << d << endl; cout.precision(4); cout << d2 << endl; cout << "====================进制输出====================" << endl; cout.setf(ios::showbase); cout << n << endl; cout.unsetf(ios::dec); cout.setf(ios::oct); cout << n << endl; cout.unsetf(ios::oct); cout.setf(ios::hex); cout << n << endl; return 0; }
相关文章推荐
- 在Android程序中使用已有的SQLite数据库
- ZOJ1058
- 常用的数据挖掘&机器学习知识(点)
- OC笔记:类的基础知识及代码示例
- ROS知识(10)----smach_viewer的Graph view不能显示状态图
- 1029
- lynx
- ./configure make make install 以及gcc 使用库的一些问题
- 简单说下外键
- php开启websocket端口程序开启模式
- Linux下装完mysql后默认密码是多少
- code[VS]1205
- 拍照、选择照片功能的实现
- 基于IoT平台-开发快的智能温室监控设备设计
- Jzzhu and Children
- 清理svn.bat
- Squid
- 10、叠加管理
- 线段树之入门篇
- DNS中的正向解析与反向解析 及 nslookup命令使用