1.cout流 cout的成员函数put和write
例一:
#include<iostream>
void main()
{
cout.put('a'); //向输出流中插入字符a
cout.put('b');
cout.flush(); //刷新输出流中的数据,使其立刻在屏幕上显现出来
}
//结果:ab
例二:
输出显示指定长度的字符串
void main()
{
char* str = "Hello World!";
cout.write(str,5); //向输出流中插入字符串Hello
cout.flush(); //刷新输出流
}
//结果:Hello World!
2.cerr流对象 cerr只能在显示器上显示输出数据
例子:
只让运行a=3时
int main()
{
int a;
cin>>a;
if(a==0)
cerr<<"这个输入不能运行"<<endl;
else if(a == 1)
cerr<<"这个输入依旧不能运行"<<endl;
else
cout<<"这样输入才可以运行"<<endl;
return 0;
}
3. 例子: 按不同进制进行数据输出
#include<iostream>
void main()
{
int a=100;
cout.setf(ios::oct); //设置输出方式为八进制
cout<<"a="<<a<<endl;
cout.setf(ios::hex); //设置输出方式为十六进制
cout<<"a="<<a<<endl;
cout.setf(ios::dec,ios::basefield); //将输出方式设置为十进制
cout<<"a="<<a<<endl;
int b=200;
//直接利用格式控制符进行不同进制的输出
cout<<"b="<<oct<<b<<endl; //八进制
cout<<"b="<<hex<<b<<endl; //十六进制
cout<<"b="<<dec<<b<<endl; //十进制
}
注意:在使用函数setf()后,会改变系统默认的输出格式,而直接插入运算符<<后面使用格式控制符则不会改变系统默认
的输出格式,只对当前的输出流起作用
4. 设置浮点数精度 precision()
void main()
{
double f = sqrt(5.0);
cout<<f<<endl; //按默认精度(6位)输出f
cout.precision(10); //将当前精度改为10
cout<<f<<endl; //按新的精度重新输出f
}
//结果:2.23607
2.236067977
设置输出宽度:width(int);
5.设置填充字符 fill(int)
例子:
int main()
{
int value=1;
cout.fill('*');
for(int i=0; i<5; i++)
{
cout.width(10);
cout<<value<<endl;
value *= 10;
}
return 0;
}
//结果:*********1
********10
*******100
******1000
*****10000
6. 设置对齐方式
调用成员函数setf(Flags),如果Flags为right标志可以使输出域右对齐并把填充字符放在输出数据的左边,left标志可以使输出域
左对齐并把填充字符放在输出数据的右边
例子:
int main()
{
int value=1;
cout.setf(ios::left);
cout.fill('*');
for(int i=0; i<5; i++)
{
cout.width(10);
cout<<value<<endl;
value *= 10;
}
return 0;
}
//结果:1*********
10********
100*******
1000******
10000*****
7.浮点数按科学计数法显示
调用成员函数setf(),设置scientific标志使输出的浮点数按照科学计数法的形式进行显示,设置fixed标志使输出的浮点数按照定点的方式
进行显示。如果不进行设置,则由浮点数的数值自动决定输出格式
#include<iostream>
#include<iomanip.h>
int main()
{
double x=0.00123456, y=1.245e9;
cout<<x<<"\t"<<y<<"\n"; //0.00123456 1.245e+009
cout.setf(ios::scientific,ios::floatfield);
cout<<x<<"\t"<<y<<"\n"; //1.234560e-003 1.245000e+009
cout.unsetf(ios::scientific);
cout<<x<<"\t"<<y<<"\n"; //0.00123456 1.245e+009
cout.setf(ios::fixed,ios::floatfield);
cout<<x<<"\t"<<y<<"\n"; //0.001235 1245000000.000000
return 0;
}
如果需要取消某个格式设置,可以使用成员函数unsetf(long Flags)