1. 程式人生 > 其它 >C++中關於cout相關的輸出格式(操作流運算元)

C++中關於cout相關的輸出格式(操作流運算元)

這邊需要注意的是如果使用到setpercision,一定要引入iomanip標頭檔案,否則編譯會出錯
注意以下的操作流運算元都是在標頭檔案iomanip中定義的,強烈建議使用的時候引入改標頭檔案否則可能會出現錯誤

預設情況下使用的運算元(也可以理解為沒有使用任何運算元的時候輸出遵循的規則)
dec:以十進位制輸出整數
right:右對齊,如果寬度不夠的時候,將填充字元新增到右邊(該句子的意思就是,一般情況下左右對齊是與setw一起配套使用的,否則左右對齊難以體現出來,此時通過setw設定最小的輸出欄位,如果此時輸出的欄位的長度小於最小的欄位輸出長度,那麼填充字元就是在左邊進行填充,反之左對齊就是在右邊進行填充)
這邊需要注意主要設定一次之後,後面的輸出方式就是設定的方式了,除非再次通過運算元進行修改,否則不會變化
nobooolalpha:true和false輸出為0,1
noshowpoint:只有當小數部分存在時候才顯示小數點,即1.00的輸出為1
noshowpos:在非負數值中不顯示+
skipws:輸入時跳過空白字元(如果設定為noskipws,那麼在讀入數字的時候會爆炸,只要存在空格就不會讀入數字了,這點需要注意)
nouppercase:十六進位制中使用a-e,若輸出字首則為0x,科學計數法中輸出的為e
也就是隻要不是字串中的輸出(包括字元),那麼都是使用小寫輸出

其他運算元:
hex:以十六進位制形式輸出整數
oct:以八進位制形式輸出整數
fixed:定點數,可以這樣記憶,以普通小數形式輸出浮點數
scientific:以科學計數法形式輸出浮點數
left:左對齊
setbase:設定輸出整數時的進位制,注意裡面的形參只能為8,10,16
setw:設定下一個輸出欄位的最短長度,注意也可以定義輸入字串讀入的字元個數
setfill:通常與setw配套使用,控制的是最小輸出欄位的長度不夠時進行填充的字元
eg:cout << setw(3) << setfill('@') << 1 << endl;
output:@@1
setprecision:注意精度的設定適用於浮點數的輸出
在使用非fixed並且非scientific方式進行輸出的情況下,裡面的形參n控制的是有效數字個數,如果整數部分的數字個數大於n,那麼輸出形式會變成科學計數法,如果n會到達小數部分,那麼輸出是按照四捨五入的方式進行輸出
注意該精度並不會將1.2000後面的0輸出
eg:cout << setprecision(10) << 1.2000 << endl;
如果使用了fixed或者scientific那麼n代表的是保留小數點後的n位數字
output:1.2
setiosflags:將某個輸出格式標誌置為1
如果setprecision(n)與setiosflags(ios::fixed)合用,可以控制小數點右邊的數字個數。
也就是說下面的兩個輸出方式的效果是一致的
eg:
cout << setiosflags(ios::fixed) << setprecision(10) << 1.20 << endl;
cout << fixed << setprecision(10) << 1.20 << endl;
resetiosflags:將某個輸出格式標誌置為0
boolapha:把true和false輸出為字串
showbase:輸出表示數值進位制的字首
showpoint:總是輸出小數點
showpos:在非負數值中顯示+
noskipws:輸入時不跳過空白字元
uppercase:與nouppercase的作用相反
internal:符號左對齊,數值右對齊(對於有符號的數字的一種規範)
fixed:小數以定點數的形式輸出
scientific:小數以科學計數法的形式進行輸出