c++中的輸出格式


C++中,setw(int n)用來控制輸出間隔。
例如:
cout<<'s'<<setw(8)<<'a'<<endl;
則在屏幕顯示
s        a 
//sa之間有7個空格,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無效。

③setwsetfill 被稱為輸出控制符,使用時需要在程序開頭寫上#include "iomanip.h",否則無法使用。

setw(n) 設域寬為n個字符 iomanip.h iomanip.hI/O流控制頭文件,就像C里面的格式化輸出一樣. 以下是一些常用的函數:

dec 置基數為10 相當於"%d" hex 置基數為16 相當於"%X"

oct 置基數為8 相當於"%o"

setfill(c) 設填充字符為c

setprecision(n) 設顯示小數精度為n

setw(n) 設域寬為n個字符

setiosflags(ios::fixed) 固定的浮點顯示

setiosflags(ios::scientific) 指數表示

setiosflags(ios::left) 左對齊

setiosflags(ios::right) 右對齊

setiosflags(ios::skipws 忽略前導空白

setiosflags(ios::uppercase) 16進制數大寫輸出 setiosflags(ios::lowercase) 16進制小寫輸出

setiosflags(ios::showpoint) 強制顯示小數點

setiosflags(ios::showpos) 強制顯示符號

示例:

#include <iomanip.h>

#include <iostream>

int main()

{

    cout<<12345.0<<endl;//12345

    cout<<setiosflags(ios::scientific)<<12345.0<<endl;//1.234500e+004

    cout<<setprecision(3)<<12345.0<<endl;//1.235e+004

    return 0;

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM