【轉載】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”,否則無法使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章