前言
在開發過程中常需要帶各種頭文件,但是作爲初學者我們常存在困惑,要實現各類功能時我們需要帶什麼頭文件呢,本文將對頭文件的功能及用法進行詳細介紹。
輸入/輸出庫
iostream
頭文件
iostream
包含了<ios>、<istream>、<ostream>、<streambuf>
四個頭文件,能夠通過以下關鍵詞實現對應功能:
對象 | 功能 |
---|---|
cin | 標準輸入 |
cout | 標準輸出 |
cerr | 標準錯誤 |
clog | 標準日誌 |
wcin | 標準輸入 |
wcout | 標準輸入 |
wcerr | 標準錯誤 |
wclog | 標準日誌 |
大家一定奇怪cin和wcin的區別,區別在於cin 表示“字符輸入”而 wcin 表示“寬字符輸入“。寬字符是用多個字節來代表的字符。
另一方面由於調用和功能均類似,cout、cerr和clog的區別也令人困惑。那麼其區別在哪呢?cout的輸出可以重定向到一個文件中,而cerr和clog必須輸出在顯示器上。而cerr和clog的區別在於cerr不經過緩衝區,而clog中的信息存放在緩衝區,緩衝區滿或者遇到endl時才輸出。cerr和clog存在的意義是爲了在你最需要它的緊急情況下,還能得到輸出功能的支持。所以並不是輸出報錯信息和運行日誌,而是輸出字符。
在程序中調用爲:
#include <iostream>
using namespace std;
int main(){
string TestName;
cin>>TestName;
cout<<TestName<<endl;
clog<<TestName<<endl;
cerr<<TestName<<endl;
return 0;
}
iomanip頭文件
iomanip頭文件是用以控制輸入輸出文本格式的輔助函數。能夠通過關鍵詞實現對應功能:
對象 | 功能 |
---|---|
resetiosflags | 重置的ios_base標誌 |
setiosflags | 設置指定的ios_base標誌 |
setbase | 更改用於整數I/O的基數 |
setfill | 更改填充字符 |
setprecision | 更改浮點精度 |
setw | 更改下個輸入/輸出域的寬度 |
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
// setioflags(ios::fixed) 固定的浮點顯示
// setioflags(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) 強制顯示符號
cout<<setbase(8)<<15<<endl;// setbase(8)以八進制輸出數字,同理setbase(10)、setbase(16)爲以十進制、十六進制輸出數字
cout<<'s'<<setw(8)<<'a'<<endl;// setw(n) 設域寬爲n個字符
cout<<'s'<<setfill('*')<<setw(8)<<'a'<<endl;// setw()默認填充的內容爲空格,可以setfill()配合使用設置其他字符填充。
cout<<setiosflags(ios::fixed)<<setprecision(3)<<1.2345<<endl;// setprecision(n) 設顯示小數精度爲n位
return 0;
}