Pencil.C++

更新速度可能会晚于http://blog.csdn.net/bilaopao

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  34 随笔 :: 0 文章 :: 40 评论 :: 0 Trackbacks
20. 格式化输入和输出:        例题从 167开始
     A.设置流的格式化标志
        1).控制格式的标志位
         ------------------------------------------------------------------------------
           标志位 |   值                             含义               |输入/输出
         ------------------------------------------------------------------------------
          skipws  | 0x0001 |                 跳过输入中的空白符                   i
         ------------------------------------------------------------------------------
           left   | 0x0002 |                 输出数据左对齐                       o
         ------------------------------------------------------------------------------
          rignt   | 0x0004 |                 输出数据右对齐                       o
         ------------------------------------------------------------------------------
         internal | 0x0008 |   数据的符号左对齐,数据本身右对齐,之间为填充符     o
         ------------------------------------------------------------------------------
           dec    | 0x0010 |              转换基数为十进制形式                   i/o
         ------------------------------------------------------------------------------
           oct    | 0x0020 |              转换基数为八进制形式                   i/o
         ------------------------------------------------------------------------------
           hex    | 0x0040 |             转换基数为十六进制形式                  i/o
         ------------------------------------------------------------------------------
         showbase | 0x0080 |                输出数据前有0/0x                      o
         ------------------------------------------------------------------------------
        showpoint | 0x0100 |              浮点数输出带有小数点                    o
         ------------------------------------------------------------------------------
        uppercase | 0x0200 |           用大写字母输出十六进制数值                 o
         ------------------------------------------------------------------------------
         showpos  | 0x0400 |               正数前面有“+”号                      o
         ------------------------------------------------------------------------------
        scientfic | 0x0800 |            浮点数输出采用科学表示法                  o
         ------------------------------------------------------------------------------
          fixed   | 0x1000 |            使用定点数形式表示浮点数                  o
         ------------------------------------------------------------------------------
         unitbuf  | 0x2000 |        完成输入操作后立即刷新流的缓冲区              o
         ------------------------------------------------------------------------------
          stdio   | 0x4000 |         完成输入操作后刷新系统的stdout               o
         ------------------------------------------------------------------------------    
       2).使用成员函数设置标志字:
           1.long flags()       //该函数用来返回标志字
           2.long flags(long)   //该函数使用参数更新标志字,返回更新前的标志字
           3.long setf(long setbits,long field)//将field所指定的标志清零,将setbits为1的位置1,返回以前的标志字
           4.long setf(long)  //设置参数所指定的那些标志的位,返回更新前的标志字
           5.long unsetf(long)//该函数用来清除参数所指定的那些标志位的位,返回更新前的标志字
        在ios类中,定义了下面的表态类对象;
           static const long  basefield; //其值为dec/oct/hex
           static const long adjustfield //其值为left/right/internal
           static const long  floatfield //其值为scientific/fixed
        example:  cin.setf(ios::dec,ios::basefield      
    B.格式输出函数:
       1).设置输出数据所占宽度的函数
           1.int width()//该函数返回当前输出数据的宽度
           2.int width(int)//刻函数用来设置当前输出数据的宽度为参数值,并返回更新前的宽度值
       2).填充当前宽度内的填充字符函数
           1.char fill()//该函数用来返回当前所使用的填充字符
           2.char fill(char)//该函数用来设置填充字符为参数值所表示的字符,并返回更新前的填充字符
       3).设置浮点数输出精度函数
           1.int precision()//该函数返回当前浮点数的有效数字的个数
           2.int precision(int)//该函数设置浮点数输出时的有效数字个数,并返回更新前的值。
      注意:float型实数最多提供7位有效数字,double型褛最多提供15位有效数字,long。。。提供19位有效数字
   C.操作子:为了简化操作,提供了一系列操作子,操作子实际上是对象
       --------------------------------------------------------------------
        dec             数值数据采用十进制表示                 i/o
       --------------------------------------------------------------------
        hex             数值数据采用十六进制表示               i/o
       --------------------------------------------------------------------
        oct             数值数据采用八进制表示                 i/o
       --------------------------------------------------------------------
        setbase(int)|  设置数据转换基数为n(n为0,8,10,16),其中0表示缺省基数  i/o
       --------------------------------------------------------------------
        ws           提取空白符                                 i
       --------------------------------------------------------------------
        ends         插入空白符                                 o
       --------------------------------------------------------------------
        flush       刷新与流相关联的缓冲区                      o
       --------------------------------------------------------------------
        resetiosflags(long)     清除参数所指定的标志位         i/o
       --------------------------------------------------------------------
        setiosflags(long)       设置参数所指定的标志位         i/o
       --------------------------------------------------------------------
        setfill(int)            设置填充字符                    o
       --------------------------------------------------------------------
        setsprecision(int)      设置浮点数输出的有效数字个数 |     o
       --------------------------------------------------------------------
        setw(int)               设置输出数据项的域宽            o
       --------------------------------------------------------------------
21. 字符串流:例170开始
      c++提供了两个类:头文件#include"strstrea.h"
         1.ostrstream:其是从ostream派生来的,将不同类型转换为字符串,并存放到数组中.
             ostrstream::ostrstream();//缺省构造函数,它用来建立存储所插入的数据的数组对象;
             ostrstream::ostrstream(char *s,int n,int mode=ios::out);//此构造函数中S是字符指针或字符数组,N是用来指定这个数组最多能存放的字符个数.mode参数给出流式的方式,缺省为out方式,还可选用ate和app方式.
           ostrstream类还提供了如下的成员函数:
             int ostrstream::pcount();//返回流中已插入的字符个数;
             char *ostrstream::str(); //返回标志字符串的数组的指针值;
         2.istrstream:其是从istream派生来的,将文本项转换为变量所需要的内部格式.     
             istrstream::istrstream(char *s);//构造函数中S是一个字符指针或字符数组,使用该串来初始化要创建的流对象
             istrstream::istrstream(char *s,int n);//此构造函数是使用串中前N个字符来构造串对象
22.异常处理
      try{   }
      throw 变量
      catch(形式参数变量){   } //其中形数参数变量只能是一个,且类型不能像函数传递形参那样进行自动转换,必须完全批配
   注意:1.当找不到指导配项时,就用黑认批配项abort()一终止程序               
         2.异常处理的数据类型是公有基类,抛掷异常的数据类型是派生类
         3.异常处理的数据类型是指向公有基类的指针,抛掷异常的数据类型是指向派生类的指针
            catch(基类)总能够捕获throw(派生类对象),所以catch(基类)块总是放在catch(派生类)块的后面,以避免catch(派生类)永远不能捕获异常
posted on 2009-04-24 19:34 Pencil.C++ 阅读(138) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理