92输入输出的格式控制 C++在类ios中提供格式化输入输出。格式控制符定义为公有的无名的枚举类型 enum skipws=0x0001 /跳过输入中的空格字符 left=0x0002 /输出左对齐 right=0X0004 /输出右对齐 internal=0x0008 //在输出符号或数制字符后填充 dec=0x0010 /在输入输出时将数据按十进制处理 oct=0x0020 /在输入输出时将数据按八进制处理 hex=0x0040 /在输入输出时将数据按十六进制处理 showbase=0x0080 /在输出时带有表示数制基的字符 showpoint=0x0100 /输出符点数时必定带小数点 uppercase=0x0200 /输出十六进制用大写 showpos=0x0400 /输出正数时加”+”号 scientific=0X0800 /科学数方式输出浮点数 fxed=01000 定点数方式输出实数 unitbuf=0x2000 //插入后立即刷新流 stdio=ox4000 即刷新
9.2 输入输出的格式控制 C++在类ios中提供格式化输入输出。格式控制符定义为公有的无名的枚举类型: enum{ skipws=0x0001 //跳过输入中的空格字符 left=0x0002 //输出左对齐 right=0x0004 //输出右对齐 internal=0x0008 //在输出符号或数制字符后填充 dec=0x0010 //在输入输出时将数据按十进制处理 oct=0x0020 //在输入输出时将数据按八进制处理 hex=0x0040 //在输入输出时将数据按十六进制处理 showbase=0x0080 //在输出时带有表示数制基的字符 showpoint=0x0100 //输出符点数时,必定带小数点 uppercase=0x0200 //输出十六进制,用大写 showpos=0x0400 //输出正数时,加”+”号 scientific=0x0800 //科学数方式输出浮点数 fixed=0x1000 //定点数方式输出实数 unitbuf=0x2000 //插入后,立即刷新流 stdio=0x4000 //插入后,立即刷新stdout和stderr }
92输入输出的格式控制 采用格式控制,只要把对应位置1即可,取多种控制时,用或“|”运算符来 合成。 【例91】整型数输出。 include<iostream h> void main (void)t int inum=255 cout<<”十进制方式”<<inum<<tt’ cout. flags(ios::oct ios: showbase) cout<<”八进制方式”<<inum<<1t; cout, setf(ios: hex); cout<<”十六进制方式”<<inum<<end 程序执行后输出:十进制方式255八进制方式0377 十六进制方式oxff
9.2 输入输出的格式控制 采用格式控制,只要把对应位置1即可,取多种控制时,用或“|”运算符来 合成。 【例9.1】整型数输出。 #include<iostream.h> void main(void){ int inum=255; cout<<”十进制方式”<<inum<<’\t’; cout.flags(ios::oct|ios::showbase); cout<<”八进制方式”<<inum<<’\t’; cout.setf(ios::hex); cout<<”十六进制方式”<<inum<<endl; } 程序执行后输出:十进制方式255 八进制方式0377 十六进制方式0xff
92输入输出的格式控制 【例92】浮点数输出 include <iostream. h> void minot double fnum=31. 415926535: cout<<”缺省域宽为<< cout width(<<”位”<<n’; cout<<”缺省精度为:”<< cout. precision()<<”位”<<Ⅷn cout<<”缺省表达方式:”<<funm<< cout setf(ios: scientific, ios: floatfieldi cout<<”科学数表达方式”<<fmum<<n cout, setf(ios: fixed,ios: floatfieldi cout<<”定点表达方式:”<<fnum<<n’; cout. precision (9); cout setf(ios: scientific, ios: floatfield) cout<<”定点9位科学数表达方式:”<<fnum<<endl
9.2 输入输出的格式控制 【例9.2】浮点数输出。 #include<iostream.h> void main(){ double fnum=31.415926535; cout<<”缺省域宽为:”<<cout.width()<<”位”<<’\n’; cout<<”缺省精度为:”<<cout.precision()<<”位”<<’\n’; cout<<”缺省表达方式:”<<funm<<’\n’; cout.setf(ios::scientific,ios::floatfield); cout<<”科学数表达方式:”<<fnum<<’\n’; cout.setf(ios::fixed,ios::floatfield); cout<<”定点表达方式:”<<fnum<<’\n’; cout.precision(9); cout.setf(ios::scientific,ios::floatfield); cout<<”定点9位科学数表达方式:”<<fnum<<endl; }
92输入输出的格式控制 其中 floatfield,是为了避免浮点数互相冲突的双重规定,所以是 清除原浮点数第13和第14两位,再用新的一位去代替。程序执行 后输出 缺省域宽为:0位 缺省精度为:6位 缺省表达方式314159 科学数表达方式:3141593e+001 定点表达方式31415927 定点9位科学数表达方式:3141592654e+001
9.2 输入输出的格式控制 其中floatfield,是为了避免浮点数互相冲突的双重规定,所以是 清除原浮点数第13和第14两位,再用新的一位去代替。程序执行 后输出: 缺省域宽为:0位 缺省精度为:6位 缺省表达方式:31.4159 科学数表达方式:3.141593e+001 定点表达方式:31.415927 定点9位科学数表达方式:3.141592654e+001
92输入输出的格式控制 cin,cout和clog都是缓冲流。输出而言, 仅当输出缓冲区瀇才将缓冲区中的信息输出, 对输入而言。仅当输入一行结束。才开始从 缓冲区中取数据,当希望把缓冲区中的傖鳥 立即输出,可用f1ush
9.2 输入输出的格式控制 cin,cout和clog都是缓冲流。输出而言, 仅当输出缓冲区满才将缓冲区中的信息输出, 对输入而言,仅当输入一行结束,才开始从 缓冲区中取数据,当希望把缓冲区中的信息 立即输出,可用flush