c++标准输入输出流的控制符
来源:互联网 发布:linux安装内核开发包 编辑:程序博客网 时间:2024/06/02 04:18
dec 设置整数的基数为10 hex 设置整数的基数为16 oct 设置整数的基数为8 setbase(n) 设置整数的基数为n(n只能是16,10,8之一) setfill(c) 设置填充字符c,c可以是字符常量或字符变量 setprecision(n) 设置实数的精度为n位。在以一般十进制小数形式输出时,n代表有效数字。在以fixed(固定小数位数)形式和scientific(指数)形式输出时,n为小数位数。 setw(n) 设置字段宽度为n位。 setiosflags(ios::fixed) 设置浮点数以固定的小数位数显示。 setiosflags(ios::scientific) 设置浮点数以科学计数法(即指数形式)显示。 setiosflags(ios::left) 输出数据左对齐。 setiosflags(ios::right) 输出数据右对齐。 setiosflags(ios::shipws) 忽略前导的空格。 setiosflags(ios::uppercase) 在以科学计数法输出E和十六进制输出字母X时,以大写表示。 setiosflags(ios::showpos) 输出正数时,给出“+”号。 resetiosflags 终止已设置的输出格式状态,在括号中应指定内容。 2.用流对象的成员控制输出格式流成员函数 与之作用相同的控制符 作用 precision(n) setprecision(n) 设置实数的精度为n位。 width(n) setw(n) 设置字段宽度为n位。 fill(c) setfill(c) 设置填充字符c。 setf( ) setiosflags( ) 设置输出格式状态,括号中应给出格式状态,内容与控制符setiosflags括号中内容相同。 ubsetf( ) resetiosflags( ) 终止已设置的输出格式状态。 cout.width(10);cout.setf(ios::hex);3.设置格式状态的格式标志格式标志 作用 ios::left 输出数据在本域宽范围内左对齐 ios::right 输出数据在本域宽范围内右对齐 ios::internal 数值的符号位在域宽内左对齐,数值右对齐,中间由填充字符填充 ios::dec 设置整数的基数为10 ios::oct 设置整数的基数为8 ios::hex 设置整数的基数为16 ios::showbase 强制输出整数的基数(八进制以0打头,十六进制以0x打头) ios::showpoint 强制输出浮点数的小点和尾数0 ios::uppercase 在以科学计数法输出E和十六进制输出字母X时,以大写表示 ios::showpos 输出正数时,给出“+”号。 ios::scientific 设置浮点数以科学计数法(即指数形式)显示 ios::fixed 设置浮点数以固定的小数位数显示 ios::unitbuf 每次输出后刷新所有流 ios::stdio 每次输出后清除 stdout,stderr
例子
#include <iostream>using namespace std;int main() { int a=21; cout.setf(ios::showbase); //设置输出时的基数符号 cout<<"dec:"<<a<<endl; //默认以十进制形式输出a cout.unsetf(ios::dec); //终止十进制的格式设置 cout.setf(ios::hex); //设置以十六进制输出的状态 cout<<"hex:"<<a<<endl; //以十六进制形式输出a cout.unsetf(ios::hex); //终止十六进制的格式设置 cout.setf(ios::oct); //设置以八进制输出的状态 cout<<"oct:"<<a<<endl; //以八进制形式输出a cout.unsetf(ios::oct); //终止以八进制的输出格式设置 char *pt="China"; //pt指向字符串”china” cout.width(10); //指定域宽为10 cout<<pt<<endl; //输出字符串 cout.width(10); //指定域宽为10 cout.fill('*'); //指定空白处以'*'填充 cout<<pt<<endl; //输出字符串 double pi=22.0/7.0; //计算pi值 cout.setf(ios::scientific);//指定用科学记数法输出 cout<<"pi="; //输出"pi=" cout.width(14); //指定域宽为14 cout<<pi<<endl; //输出"pi值 cout.unsetf(ios::scientific); //终止科学记数法状态 cout.setf(ios::fixed); //指定用定点形式输出 cout.width(12); //指定域宽为12 cout.setf(ios::showpos); //在输出正数时显示“+”号 cout.setf(ios::internal); //数符出现在左侧 cout.precision(6); //保留6位小数 cout<<pi<<endl; //输出pi,注意数符“+”的位置 return 0; }
输出
dec:21 (十进制形式) hex:Oxl5 (十六进制形式,以0x开头) oct:025 (八进制形式,以O开头) China (域宽为10) *****china (域宽为10,空白处以'*'填充) pi=**3.142857e+00 (指数形式输出,域宽14,默认6位小数) ****3.142857 (小数形式输㈩,精度为6,最左侧输出数符“+”)
说明:
1、成员函数width(n)和控制符setw(n)只对其后的第一个输出项有效。如果要求在输出数据时都按指定的同一域宽n输出,不能只调用一次width(n),而必须在输出每一项前都调用一次width(n)。
2、在表5中的输出格式状态分为5组,每一组中同时只能选用一种(例如,dec,hex和oct中只能选一,它们是互相排斥的),在用成员函数serf和控制符setiosflags设置输出格式状态后,如果想改设置为同组的另一状态,应当调用成员函数unsetf(对应于成员函数serf)或resetiosflags(对应于控制符sefiosflags),先终止原来设置的状态。然后再设置其他状态。
同理,程序倒数第8行的unsetf函数的调用也是不可缺少的。读者不妨上机试一试。
3、用serf函数设置格式状态时,可以包含两个或多个格式标志,由于这些格式标志在lOS类中被定义为枚举值,每一个格式标志以一个二进位代表,因此可以用“位或”运算符“I”组合多个格式标志
4、可以看到:对输出格式的控制,既可以用控制符(如例2),也可以用cout流的有关成员函数(如例3),二者的作用是相同的。控制符是在头文件mmamp中定义的,因此用控制符时,必须包含iomanip头文件。cout流的成员函数是在头文件iostream中定义的,因此只需包含头文件iostream,不必包含iomanip。许多程序人员感到使用控制符方便简单,可以在一个cout输出语句中连续使用多种控制符。
5、关于输山格式的控制,在使用中还会遇到一些细节问题,不可能在这里全部涉及。在遇到问题时,请查阅专门手册或上机试验一下即可解决。
- c++标准输入输出流的控制符
- 标准输入输出的控制
- 一些关于标准输入输出流的控制符的知识
- Java控制流(如:标准输入输出)的注意事项
- C++标准输入输出流控制字符的使用
- 重学C++Primer笔记7---标准IO库中输入输出流控制
- 标准C---输入输出函数及控制流程语句
- 标准C-----文件的输入输出函数
- C/C++ 标准输入输出的坑
- c 语言的标准输入输出,scanf,printf
- 6.标准流的输入输出
- c++的标准输入输出流
- c 标准输入输出
- C语言标准输入输出
- C语言 标准输入输出
- C标准输入输出
- Linux-C标准输入输出
- 浅解C语言的标准输入输出、标准错误
- [WCF]使用Visual Studio配置发布服务元数据
- 如何用网线连接自己的开发板?
- java中字符串反转
- Android应用程序开发以及背后的设计思想深度剖析(1)
- Android 开发者应该知道的学习站点
- c++标准输入输出流的控制符
- Java 数据库连接
- Android —— Notification(二)
- 牛人博客
- java中的迭代器
- 350. Intersection of Two Arrays II
- wxPython之解决闪烁
- codeforces #352(div1)-Robin Hood
- [绍棠] SourceTree过期,需要注册导入 SourceTree License 许可证