C++ 輸出格式控制

寫在前面: 我是「虐貓人薛定諤i」,一個不滿足於現狀,有夢想,有追求的00後
\quad
本博客主要記錄和分享自己畢生所學的知識,歡迎關注,第一時間獲取更新。
\quad
不忘初心,方得始終。自己的夢想,終有一天會實現!
\quad

❤❤❤❤❤❤❤❤❤❤

C++ 提供了許多控制數據輸入輸出格式的函數和操縱符,如setprecision、setw、right等,它們都在頭文件iomanip中定義的,應用它們時要包含該頭文件。

設置浮點數的精度

在需要設置輸出數據的精度時,可以用操縱函數setprecision()

setprecision(n)

其中,n代表有效位數,包括整數位數和小數位數。
用setprecision函數設置輸出數據的精度後,會一直持續到再次用setprecision函數改變輸出精度爲止。

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
	double pi = 3.1415926;
	cout << pi <<endl;
	cout << setprecision(8) << pi <<endl;
	cout << setprecision(3) << pi <<endl;
	return 0;
}

在這裏插入圖片描述

設置輸出域寬

可以用setw()函數來設置輸出數據佔用的列數(域寬,即佔用的字符個數)

setw(n)

其中,n是輸出數據佔用屏幕的字符數,默認輸出數據爲右對齊。若輸出數據的位數比n小,則左邊留空,若輸出數據的實際位數比n大,則輸出數據將自動擴展到所需佔用的列數。
setw()只對緊隨其後的一個輸出數據有效。

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
	double pi = 3.1415926;
	cout << pi <<endl;
	cout << setw(10) << pi <<endl;
	cout << setw(3) << pi <<endl;
	return 0;
}

在這裏插入圖片描述

設置對齊方式

setiosflags()和resetiosflags()可以用來設置或取消輸入/輸出數據的各種格式,包括改變數制基數、設置浮點數的精度、轉換字母大小寫,設置對齊方式等。

setiosflags(long f);
resetiosflags(long f);
//表示左對齊的常數值
ios::left
//表示右對齊的常數值
ios::right

C++ 在默認情況下,是按右對齊的方式輸出數據的。
當我們用setiosflags()設置輸出對齊方式成功後,將一直有效,直到用resetiosflags()取消它爲止。

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
	int i = 123456789;
	cout << setiosflags(ios::left) << i <<endl;
	cout << setiosflags(ios::left) << setw(10) << i << 12345 << endl;
	cout << setiosflags(ios::left) << setw(3) << i << 12345 << endl;
	return 0;
}

在這裏插入圖片描述

數制基數

iostream頭文件中預定義了hex、oct、dec等操縱符,分別表示十六進制、八進制和十進制數。默認情況下,C++ 按照十進制的形式輸入、輸出數據。當要按其他進制輸入、輸出數據時,就需要在cin和cout語句中指定數字的基數。

十進制數:直接輸入數據本身
八進制:在輸入數據時,數據前加0
十六進制:在輸入數據時,數據前加0x或0X

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
	int num = 11;
	cout << num << endl;
	cout << oct << num << endl;
	cout << hex << num << endl;
	return 0;
}

在這裏插入圖片描述

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