C++输出流

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)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值