c++输入输出格式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.使用控制符控制输出格式
控制符 作用
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
using namespace std;
int main()
{ int a=21;
cout.setf(ios::showbase); //设置输出时的基数符号
cout<<"dec:"<cout.unsetf(ios::dec); //终止十进制的格式设置
cout.setf(ios::hex); //设置以十六进制输出的状态
cout<<"hex:"<cout.unsetf(ios::hex); //
出语句中连续使用多种控制符。
5、关于输山格式的控制,在使用中还会遇到一些细节问题,不可能在这里全部涉及。在遇到问题时,请查阅专门手册或上机试验一下即可解决。
以小数形式,保留三位小数输出:
cout<
//
03.//using namespace std;
04.
05.//以下所有的setf()都有对应的unsetf()用于取消设置
06.//所有的setiosflags()可以用resetiosflags()取消
07.//标志位fmtflags的命名空间可以使用ios_base::或者ios::
08.
09.int laneri = 12345;
10.double lanerd = 56789;
11.
12.//1、设置整数进制输出
13.//重载1:fmtflags ios_base::setf(fmtflags _Mask);
14.//重载2:fmtflags ios_base::setf(fmtflags _Mask, fmtflags _Unset);
15.//使用重载1的时候,一定要先取消当前基,之后才可以设置新的基
16.//使用重载2的时候,第二个参数设为当前的基,或者当不知道当前基时,设为ios_base::basefield清除当前的所有可能的基
17.//可使用的标志:ios::dec, ios::oct, ios::hex, ios::basefield(= dec|oct|hex)
18.cout.unsetf(ios::dec); //等价1
19.cout.setf(ios::hex);
20.cout.setf(ios::hex, ios_base::basefield); //等价2
21.cout<
25.
26.//2、 显示进制前导字符(0、0x)
27.cout.setf(ios::showbase);
28.cout<
31.//3、使用科学记数法
32.//只对数据类型为小数的变量有效(或者字面值是小数)
33.//对precision有影响(详见precision的说明)
34.//对ios::fixed有影响(详见fixed的说明),但不会被fixed影响
35.cout.setf(ios::scientific);
36.cout<
40.//4、设置小数的浮点/定点显示方式
41.//主要依靠precision体现(详见precision的说明)
42.//当设置了ios::scientific标志时,ios::fixed会受到影响,std::fixed不会
43.cout.setf(ios::fixed);
44.cout<
48.//5、设置小数数据类型的显示精度,受到scientific和fixed的影响
49.//当设置(fixed | scientific)时,precision(n)表示小数点后固定显示n位小数
50.//当不设置(fixed & scientific)时,precision(n)表示固定显示n位数字
51.// 其中,当是整数且位数m小于n,而又没有设置showpoint的时候,只显示m位整
数。例如:precision(3),12->12
52.// 其中,当是整数且位数p大于n,无论设置showpoint与否,都四舍五入后使用科学计数法。例如:precision(3),1234->1.23e+003
53.cout.precision(3);
54.cout<
57.//6、强制浮点数类型变量的小数点显示
58.//如果是整数,大于precision宽度时使用科学计数法,小于precision则小数点后面补0,等于precision时显示小数点但无小数
59.//例:不设fixed,precision(6): 1234567->1.23457E+006; 12345->12345.0; 123456->123456.
60.// 设fixed,precision(6): 1234567->1234567.000000; 12345->12345.000000; 123456->123456.000000
61.cout.setf(ios::showpoint);
62.cout<
65.//7、设置屏幕上的最小显示宽度
66.//实际字符数大于等于这个数字,显示全部;小于这个数字,用fill()设置的字符来填充其他占位符
67.//注意:宽度设置只对下一个"<<"输出有效
68.//例如:cout<
70.cout<
72.//8、显示对齐方式,默认为左对齐
73.cout.setf(ios::right);
74.cout<
77.//9、设置不足显示宽度时的填充字符,默认为' '
78.cout.fill('*');
79.cout<