使用cout來進行格式化輸出

2021-06-29 16:45:41 字數 2352 閱讀 9369

1.修改顯示時使用的計數系統

ostream類是從ios類派生來的,而後者是從ios_base派生來的。ios_base類儲存了描述格式狀態的資訊。例如,乙個類成員中某些位決定了使用的計數系統,而另乙個成員則決定了字段寬度。通過使用控制符,可以控制顯示整數時使用的計數系統。通過使用ios_base的成員函式,可以控制欄位的寬度和小數字數。

要控制整數以十進位制、十六進製制、八進位制顯示,可以使用dec、hex和oct控制符。

例如:

#include 

int main()

2.調整字元寬度

cout.width(int);
注意:width( )方法只影響接下來顯示的乙個專案,然後字段寬度將恢復為預設值

3.填充字元

cout.fill('*');//用 * 來填充欄位中未被使用的部分
注意:與字段寬度不同的是,新的填充字元將一直有效,直到更改它為止。

4.設定浮點數的顯示精度

cout.precision(5);//設定精度為5
5.列印末尾的0和小數點

cout.setf(ios_base:

:showpoint);

setf( )是ios_base類中的乙個格式化函式,setf( )有兩個原型。第乙個為:

fmtflags setf(fmtflags);
其中,fmtflags是bitmask型別的typedef名,用於儲存格式標記。這個版本的setf( )是用來設定單位控制的格式資訊。

有下面一些格式常量:

ios_base::boolalpha   輸入和輸出bool值,可以為true或false

ios_base::showbase 對於輸出,使用c++基數字首(o,ox)

ios_base::showpoint 顯示末尾的小數點

ios_base::uppercase 對於16進製制輸出,使用大寫字母,e表示法

ios_base::showpos 在正數前面加上+

第二個setf( )原型接受兩個引數,並返回以前的設定:

fmtflags setf(fmtflags, fmtflags);
函式的這種過載格式用於設定由多位控制的格式選項。第乙個引數和以前一樣,也是包含了所需設定的fmtflags值,第二個引數指出要清楚第乙個引數中的哪些位。

#include 

#include

int main()

cout.setf(ios_base::internal,ios_base::adjustfield);//符號或基數字首左對齊,值右對齊

cout.setf(old,ios_base::floatfield);//恢復以前的格式設定

cout

<<"internal justification:\n";

for(n = 1; n <= 41; n += 10)

cout.setf(ios_base::right,ios_base::adjustfield);//右對齊

cout.setf(ios_base::fixed,ios_base::floatfield);//使用定點計數法

cout

<<"right justification:\n";

for(n = 1; n <= 41; n += 10)

return

0;}

輸出結果為:

left justification:

+1 |+1.000e+000 |

+11 |+3.317e+000 |

+21 |+4.583e+000 |

+31 |+5.568e+000 |

+41 |+6.403e+000 |

internal justification:

+ 1|+ 1.00|

+ 11|+ 3.32|

+ 21|+ 4.58|

+ 31|+ 5.57|

+ 41|+ 6.40|

right justification:

+1| +1.000|

+11| +3.317|

+21| +4.583|

+31| +5.568|

+41| +6.403|

cout格式化輸出

在使用setf等庫函式時使用 在使用流操縱運算元時使用 using namespace std 以下所有的setf 都有對應的unsetf 用於取消設定 所有的setiosflags 可以用resetiosflags 取消 標誌位fmtflags的命名空間可以使用ios base 或者ios int...

cout格式化輸出

需要引入的標頭檔案 include在使用流操縱運算元時使用 int laneri 12345 double lanerd 56789 1 設定整數進製輸出 過載1 fmtflags ios base setf fmtflags mask 過載2 fmtflags ios base setf fmtf...

cout格式化輸出

在c語言中,我們一般用printf 函式來進行輸出,通過輸出字串中的格式說明符 如 4.2d 可以很容易地格式化輸出。而在c 中,為簡便起見,往往不指定輸出的格式,由系統根據資料的型別採取預設的格式,但有時也需要資料按我們指定的格式輸出,比如以十六進製制的形式輸出乙個整數等。有兩種方法可以達到格式化...