cin简介

整数的基数:

Dec(十进制)

Oct(八进制)

Hex(十六进制

 

设置基数的函数 setbase(int n),n可以是108、或16

如果不明确的改变流的基数,流的基数是不变的。

 

 

 

设置浮点数精度:

setprecision (必须带参数)

precision (无参数时返回当前设置的精度)

设置后,对以后的输出都有效。

 

 

#include<iostream.h>

#include<ctype.h>

#include<iomanip.h>

#include<math.h>

 

intmain()

{

      double root2=sqrt(2.0);

      int place;

 

      cout<<setiosflags(ios::fixed)

             <<"Square root of 2 with precisions0-9\n"

             <<"precision se by the"

             <<"precision memberfunction:"<<endl;

 

      for(place=0; place<=9; place++)

      {

             cout.precision(place);

         cout<<root2<<endl;

      }

 

      cout<<"precision now is:"<<cout.precision()<<endl;

 

      for(place=0; place<=9; place++)

      {

             cout<<setprecision(place)<<root2<<endl;

      }

 

//    cout<<"precision now is:"<<setprecision()<<endl; 

 

      

      return 0;

 

}

 

 

设置域宽

如果所需的宽度比设置的域宽小,空位用填充字符填充。如果显示数据所需的宽度比设置的域宽大,系统输出所有位。域宽设置仅对下一行流读入或流插入抄做有效,在一次操作完后被置0

Setw

Width输入操作提取字符串的最大宽度比定义的域宽小1,这是因为在输入的字符串后面必须加上一个空字符。

 

#include<iostream.h>

#include<ctype.h>

#include<iomanip.h>

 

int main()

{

      int w=4;

      char str[10];

 

      cout<<"Enter asentence:\n";

 

      cin.width(5); //每次只接收4个字符,其他的放在流中等待接收。

      

      while( cin>> str )

      {

             cout.width(w++); //4个字符输出,设置每次输出的域宽增加1

             cout<<str<<endl;//输出字符

             cin.width(5);   //设置接收4个字符

      }

 

      return 0;

 

}

输入输出情况:

Enter a sentence:

happy new year

happ

   y

   new

   year

^Z

先输出happ(四个字符),y留在下一次。遇到空格接收结束,第二次只有y,到y输出时,输出域宽是5。下一个接收的是new(后面的空格断开了接收),……

 

对齐(ios::left,ios::right,ios::internal

默认是右对齐

Internal: 标示一个数的符号位左对齐,数值右对齐。

设置leftrightinternal时,setf的第二个参数必须是ios::adjustfield

 

设置填充字符(fillsetfill

空格是默认的填充字符。Fill函数返回以前设置的填充字符。

 

 

整数流的基数(ios::dec ios::oct  ios::hex  ios::showbase

Showbase强制输出整数值的基数。ios::uppercase 决定是0x还是0X

 

#include<iostream.h>

#include<iomanip.h>

 

int main()

{

      int x=100;

      

      cout<<setiosflags(ios::showbase |ios::uppercase)

             <<x<<'\n'

             <<oct<<x<<'\n'

             <<hex<<x<<endl;

      return 0;

 

}

 

 

浮点数和科学记数法(ios::scientific  ios::fixed

secientific标志使浮点数按科学记数法输出。

fixed标志使浮点数按照定点格式输出,显示小数点及后面的位数(位数的指定由precision决定,若没设置,则按默认-小数后6位)。

 

 

设置及清除格式标志(flags setiosflags resetiosflags

无参数的flags只返回格式标志的当前设置(long型)。带一个long参数的flags按参数的指定格式设置标志,返回以前的标志设置。

coutsetf成员函数有两种写法:

1. cout.setf(long)

2. cout.setf(long  a, long  b)

aios::leftios::right ios::internal 那么b对应ios::adjustfield

aios::oct ios::hex ios::dec        b对应ios::basefield

aios::scientific  ios::fixed         b对应ios::floatfield

 

 

 

错误流状态

当流中发生格式错误时,设置failbit

当发生导致数据丢失错误时,设置badbit

如果eofbitfailbitbadbit都没有设置,则设置goodbit

成员函数rdstate返回流的错误状态。

成员函数clear把一个流的状态恢复为“好”,如:

cin.clear()

清除 cin ,并为流设置 goodbit
转自:
http://www.programfan.com/blog/article.asp?id=11046
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值