c++格式化輸入輸出以及操縱器的使用


C++格式化輸入和輸出

1,ios類中定義的格式控制標志

ios類中定義了一個數據成員:格式控制標志字,long x_flags

x_flags每一位的狀態值用枚舉符號常量定義:如下列出常用幾個

enum{

skipws  //跳過輸入空格(skip whitespace)

left   //輸出左對齊調整

right   //輸出右對齊調整

dec       //轉化為十進制(in/out)(decimalism)

oct        //轉化為八進制(in/out)(octonary number system)

hex       //轉化為十六進制(in/out)(hexadecimal)

showbase  //輸出時顯示所有數值的基數,八進制是前邊加0,十六進制是前邊加0x:例如: dec: 255 , cot:0377, hex:0xff

showpoint  //輸出時顯示小數點和額外的零,即使不需要

uppercase  //大寫十六進制輸出

showpos  // 正整數顯示前邊加"+"(show positive sign)

scientific  //用科學計數法顯示浮點數

fixed  //用正常的計數方法顯示浮點數,與科學計數法相對應

};

2,操作符

操作符:兩類

不帶參數:定義在頭文件 iostream.h

帶參數:定義在頭文件iomanip.h

(1)iostream.h 中的操作符(舉例中num代表變量)

oct  //cout<<oct<<num;八進制

    cin>>oct<<num;

dec  //cout<<dec<<num;十進制

    cin>>dec>>num;

hex  //cout<<hex<<num;十六進制

ws  //cin>>ws;//跳過所有前導空白字符 (whitespace)

endl  //cout<<endl  插入換行符並刷新流

ends  //cout<<ends,輸出空字符'\0'

flush  //cout<<flush 清空流

 (2)iomanip.h

setprecision(int)  //設置數值精度(四舍五入)cout<<setprecision(5)<<num;

setw(int)  //設置域寬度cout<<setw(4)<<num;

setifosflags(long p)  //啟用指定為p的標志 cout<<setifosflags(ios::left|ios::dec)//左對齊十進制輸出

resettifosflags(long p)  //取消指定為p的標志

其他

precision() 返回當前的浮點數精度值

precision(val) 設置val為新的浮點數精度值, 並返回原值

setf(flags) 添加格式標志flags, 返回所有標志的原本狀態

flags(long p) //啟用指定為p 的標志

示例:

flags()

 

int inum=255;
    cout<<"十進制方式"<<inum<<"\t";
    cout.flags(ios::oct|ios::showbase);
    cout<<"八進制方式"<<inum<<"\t";
    cout.flags(ios::hex|ios::showbase);
    cout<<"十六進制方式"<<inum<<endl;

 

  precison()

void fn (float interest,float amount)
{
    cout<<"RMB amount=";
    cout.precision(2);
    cout<<amount<<endl;
    cout<<"\nthe interest=";
    cout.precision(4);
    cout<<interest<<endl;
}

int main ()
{
    float f1=29.41560067;
    float f2=12.567188;
    fn(f1,f2);
    return 0;
}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM