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