天天看點

【轉載】c++中setw()與setfill()的用法詳情

Learning

在C++中,setw(int n)用來控制輸出間隔。

例如:

cout<<‘s’<<setw(8)<<‘a’<<endl;

則在螢幕顯示

s   a

//s與a之間有7個空格,加上a就8個位置

setw()隻對其後面緊跟的輸出産生作用,如上例中,表示’a’共占8個位置,不足的用空格填充。若輸入的内容超過setw()設定的長度,則按實際長度輸出

setw()預設填充的内容為空格,可以setfill()配合使用設定其他字元填充。

如:

cout<<setfill(’*’)<<setw(5)<<‘a’<<endl;

則輸出:

****a //4個*和字元a共占5個位置。

所謂域寬,就是輸出的内容(數值或字元等等)需要占據多少個字元的位置,如果位置有空餘則會自動補足。比如我們要設定域寬為2,那麼當輸出一位數1的時候輸出的就是“ 1”,即在1前面加了一個空格。空格和數字1正好一共占用了兩個字元的位置。

我 們在設定域寬和填充字元的時候要注意幾點:

①設定域寬的時候應該填入整數,設定填充字元的時候應該填入字元。

②我們可以對一個要輸出的内容同時設定域寬和 填充字元,但是設定好的屬性僅對下一個輸出的内容有效,之後的輸出要再次設定。即 cout <<setw(2) <<a <<b;語句中域寬設定僅對a有效,對b無效。

③setw和setfill 被稱為輸出控制符,使用時需要在程式開頭寫上#include “iomanip.h”,否則無法使用。

繼續閱讀