1. 程式人生 > >C++常用流格式控制符的用法

C++常用流格式控制符的用法

流格式控制符定義在<iomanip>標頭檔案中。

常用的流格式控制符(std::cout<<)

控制符

描述

setw(width)

指定列印欄位的寬度

setprecision(n)

設定一個浮點數的精度

fixed

將一個浮點數以定點數的形式輸出

showpoint

將一個浮點數以帶小數點、帶結尾0的形式輸出,即便沒有小數部分

left

輸出內容左對齊

right

輸出內容右對齊

1.        setw(width)

預設情況下,輸出內容需要多少個位置,cout就僅僅佔用那麼多螢幕位置。你可以使用setw(width),

指定一個輸出內容佔用多少個位置。

例如:

cout << setw(8) <<"C++" << setw(6) << 101 << endl;
cout << setw(8) <<"Java" << setw(6) << 101 << endl;
cout << setw(8) <<"HTML" << setw(6) << 101 << endl;

在第1行程式碼中,setw(8)指明“C++“佔8個輸出位置。因此,在”C++“之前列印了5個空格

。同理,在“101“之前列印3個空格。

setw(n)每次只作用一個輸出欄位,所以,要想每個欄位輸出都設定寬度,必須每次都要寫一遍setw(n)

2.     setprecision(n)

setprecision(n)指定一個浮點數的精度。

1.)可以指定一個浮點數列印幾位數字,其中n是總位數!!包括小數之前和之後的數字。超出的位數會被四捨五入

setprecisionn)不是捨棄,在高精度向低精度轉換時,超出部分會被捨棄如一個doublek =1.5,int i = k ,這時候0.5被捨去,i = 1,

高精度向低精度轉換超出位數會被捨棄!

例如:

double num = 1.23456;
cout << setprecision(2) << num << endl;  //---- 輸出1.2
cout << setprecision(4) << num << endl;  //---- 輸出1.235
cout << setprecision(5) << num << endl;  //---- 輸出1.22346

2與setw(width)不同setprecision(n)一直作用到下一個setprecisin(n)之前所以,只需要寫一個setprecision(n)就可以setw()要每次都寫

C++四捨五入用

3.     fixed

fixed可以強制數值不以科學技術法顯示,即只用小數形式顯示。

(在遇見大的浮點數時候,計算機會以科學技術法形式顯示浮點數)

預設情況下,使用fixed之後,小數點後面數字位數為6

如:

	double i  = 1.23;
	cout << fixed << i << endl;

會輸出1.230000

3)我們可以使用fixedsetprecision(n)一起使用的方法,來改變這個小數點後的位數,當setprecisionn)作用於fixed之後時候,

setprecision(n)指定的是小數點後的數字位數

如:

	double k = 3.141592653;
	cout << fixed << setprecision(2) << k << endl;

輸出:3.14

這時候,後面也會四捨五入,,即只要用了setprecision(n)就會四捨五入

4)一旦使用了fixed之後,它會作用於後面所有的浮點數.

5)注意,預設情況下,沒有小數的部分不會顯示小數點。但使用fixed之後,會強制顯示小數點。

如:

	double i = 1;
	cout << fixed << i << endl;

顯示1.000000

4.     showpoint(與setprecision(n)一起使用)

showpoint強制小數後面以0顯示。

cout << setprecision(6);
cout << showpoint << 1.23 << endl; //----顯示1.23000
cout << showpoint << 123.0 << endl; //----顯示123.000

5.     right/left  對齊方式

大多數系統預設情況下為右對齊,

可以使用;eft ,將輸出格式左對齊

用法如下:

cout << left;
cout << setw(8) << 1.23 <<endl;
cout << setw(8) << 1.23456 <<endl;

本文參考:《C++程式設計》 (美)Y.Daniel Liang(譯)王剛劉曉光

課本截圖: