c++预定义类型输入输出的格式控制
来源:互联网 发布:中国象棋网络高手 编辑:程序博客网 时间:2024/06/06 05:37
1 用流成员函数进行输入输出格式控制
#include<iostream>using namespace std;int main(){ cout<<"------1------\n"; cout.width(10); //设置域宽为10位 cout<<123<<endl; //输出整数123 占10位 默认右对齐 cout<<"------2------\n"; cout<<123<<endl; //输出整数123,上面的width(10)已不起作用 此时按系统默认的域宽输出(按数据实际长度输出) cout<<"------3------\n"; cout.fill('&'); //设置填充字符’&‘ cout.width(10); //设置域宽为10位 cout<<123<<endl; //输出整数123,占10位,默认右对齐,填充字符‘&’ cout<<"------4------\n"; cout.setf(ios::left); //设置左对齐 cout<<123<<endl; //输出整数123,上面的width(10)已经不起作用,按数据实际长度输出,左对齐 cout<<"------5------\n"; cout.precision(4); //设置实数的精度为4位 cout<<123.45678<<endl; //以一般十进制小数形式输出时,有效数字为4 cout<<"------6------\n"; cout.setf(ios::fixed); //用顶点格式(小数形式)显示浮点数 cout<<123.45678<<endl; //以fixed形式输出时,小数位数占4位 cout<<"------7------\n"; cout.width(15); //设置域宽为15位 cout.unsetf(ios::fixed); //清除用顶点格式(小数形式)显示浮点数 cout.setf(ios::scientific); //用科学表示法格式(指数)显示浮点数 cout<<123.45678<<endl; //用科学表示法格式(指数)输出,小数占4位 cout<<"------8------\n"; int a=21; cout.setf(ios::showbase); //输出整数时显示基数符号 cout.unsetf(ios::dec); //终止十进制的格式设置 cout.setf(ios::hex); //设置以十六进制输出格式 cout<<a<<endl; //以十六进制输出a return 0;}
分析以上程序和运行结果,可以看出:
1 在默认情况下,域宽取值为0,这个0意味着---无域宽,即数据按照自身宽度打印。
2 当用width()函数设置了域宽后,只对紧跟着它的流输出操作有效(紧跟着它的第一个输出有影响),当第一个输出完成后,域宽又恢复为默认的域宽0。
而调用precision()函数和fill()函数的设置,在程序中一直有效,除非他们被重新设置。
setf()函数设置格式后,如果想改变设置为同组的另一个状态,应当调用unsetf()函数,终止原来的设置状态,然后再设置其他状态。
3 当显示数据所需的宽度比使用ios::width()设置的宽度小时,空余的位置用填充字符来填充,默认情况下的填充字符是空格。
填充字符的填充位置由ios::left 和 ios::right规定。若设置为前者,输出数据左对齐,字符填充在右边。后者相反。
2 使用预定义的操纵符进行输入输出格式控制
#include<iostream>#include<iomanip>using namespace std;int main(){ cout<<setw(10)<<123<<567<<endl; //设置域宽为10,之后输出123和567,它们连到了一起,说明操纵符setw只对最靠近他的输出起作作用(作用是一次性的) cout<<123<<setiosflags(ios::scientific)<<setw(20)<<123.456789<<endl; //首先按默认的方式输出123,之后按照浮点数的科学记数法及域宽为20输出,由于默认小数位数是6 cout<<123<<setw(10)<<hex<<123<<endl; //首先按默认的方式输出123,之后按照域宽为10,以十六进制输出123 cout<<123<<setw(10)<<oct<<123<<endl; //由于上一条语句使用了操纵符hex,起作用仍然保持,先输出16进制123,再输出十进制123。操纵符dec,oct,hex使用过以后,其 作用一直保持, //直到重新设置为止 //域宽不说,默认右对齐 cout<<123<<setw(10)<<dec<<123<<endl; //同上 cout<<resetiosflags(ios::scientific)<<setprecision(4)<<123.456789<<endl; //取消浮点数的科学表示法输出后,设置小数位数为4。用setprecision操纵符设置小数 //位数后,输出结果做四舍五入处理。 cout<<setiosflags(ios::left)<<setfill('#')<<setw(8)<<123<<endl; //数据左对齐,字符右填充 cout<<resetiosflags(ios::left)<<setfill('$')<<setw(8)<<456<<endl; //取消数据左对齐,默认数据右对齐。 return 0;}
阅读全文
0 0
- c++预定义类型输入输出的格式控制
- c++IO之预定义格式控制
- c语言中输入输出格式的控制
- C++之预定义类型IO格式控制
- C++之预定义类型IO格式控制
- C++之预定义类型IO格式控制
- C++之预定义类型IO格式控制
- C++之预定义类型IO格式控制
- C++之预定义类型IO格式控制
- 输入输出的格式控制
- C++_输入输出格式控制
- C语言输入输出格式控制
- C语言中对输入输出格式的控制
- COUT输入输出的格式控制
- c++输入输出格式的控制
- C++控制输入输出的格式
- 1.12 输入输出格式的控制
- 9.2 输入输出的格式控制
- 阿里JAVA开发手册的部分收录
- 众数问题
- Java菜鸟学习日记9
- POJ 1088 滑雪(经典二维动态规划)【模板】
- WdatePicker日历控件的用法
- c++预定义类型输入输出的格式控制
- 51NOD 2006 飞行员配对(二分图最大匹配)
- php魔术方法(三)类的序列化和反序列化
- 并发基础_4_并发_线程间通信
- 开启博客技术之路
- Java实现添加压缩文件
- MySql-Limit用法
- ZOJ1633-构造模拟-Big String
- Http协议通信