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