C++輸出格式

C++輸出格式ios

C++中默認輸出有效位數是6位,即c++

則輸出:函數

221.11
1.11011
199967 //6位有效數字,自動截取保存六位
1.99967e+006 //六位以上且沒法省略顯示將會變爲指數顯示spa

那麼若是須要顯示多位,能夠經過調整輸出格式,那麼設置c++輸出格式,主要有兩種辦法:對象

一、在輸入流與輸出流中使用控制符

二、用流對象的成員函數控制輸出格式

兩者有什麼區別,用法上呢,第一種就是使用控制符設置輸出顯示,例如:ci

cout<<setw(10)<<a<<endl;//設置了輸出的寬度爲10,多餘默認用空格補齊io

而第二種,經過調用流對象cout中用於控制輸出格式的成員函數來控制輸出格式,例如:引用

cout.width(10)//設置了輸出的寬度爲10,一樣的多餘的默認用空格補齊im

而值得一提的是,從影響範圍上看,筆者原覺得第二種調用成員函數將改變全局設置,可是實際上兩者都只能影響下一次的輸出格式,例,使用控制符:img

輸出爲:

1
  1
1

而,調用輸出流對象的成員函數:

輸出爲:

1
  1
1
1

再來具體看看兩種辦法的一些用法

一、在輸入流與輸出流中使用控制符

1)設置寬度setw(n),n即爲輸出固定寬度,默認以空格填充,若是加上setfill('0')即以‘0’爲填充,‘’內可改成其餘字符,例如:

 輸出:

0000000001
*********1

2)設置有效位數setprecision(n),n即爲設置位數,例如:

輸出:

221.116  //默認六位
221.1161101 //經過設置十位

3)設置小數點後位數,先經過setiosflags(ios::fixed)設置固定小數點的位數,再經過setprecision(n),設置小數點後固定保留n位數

例如:

輸出:

221.116    //默認六位
1.100000  //固定6位,空位自動補零
221.116110 //固定六位,後位四捨五入
221.11611012

4)設置爲指數形式輸出,setiosflags(ios::scientific),同上面設置小數後位數同樣,與setprecision連用設置,不經常使用,不做例證

5)按進制輸出,dec爲十進制,hex爲16進制,而也能夠經過setbase(n),直接設置n進制,例如:

輸出:

11111
11111
2b67
25547
2b67

二、用流對象的成員函數控制輸出格式

用途相似上述,用法稍加改變,相似上文講解兩者區別時的用法;

流成員函數setf和控制符setiosflags括號中的參數表示格式狀態,它是經過格式標誌來指定的。格式標誌在類ios中被定義爲枚舉值。所以在引用這些格式標誌時要在前面加上類名ios和域運算符「::」。格式標誌見表13.5。

相關文章
相關標籤/搜索