詳解c++中<iostream>常用接口匯總
在 C++ 中,<iostream> 是處理標(biāo)準(zhǔn)輸入輸出(I/O)的核心頭文件,它包含了用于控制臺(tái)輸入輸出的基礎(chǔ)類、對(duì)象和操作接口。以下是其中最常用的接口分類及具體說明:
一、標(biāo)準(zhǔn)流對(duì)象(最基礎(chǔ)的 I/O 載體)
這些是預(yù)定義的全局對(duì)象,直接關(guān)聯(lián)到系統(tǒng)的標(biāo)準(zhǔn)輸入輸出設(shè)備(如鍵盤、屏幕),是 I/O 操作的入口。
| 對(duì)象 | 含義 | 特性 | 常用場(chǎng)景 |
|---|---|---|---|
| cout | 標(biāo)準(zhǔn)輸出流 | 有緩沖(輸出可能延遲),默認(rèn)關(guān)聯(lián)屏幕 | 輸出正常信息(如結(jié)果、提示) |
| cin | 標(biāo)準(zhǔn)輸入流 | 有緩沖(等待用戶輸入完成),默認(rèn)關(guān)聯(lián)鍵盤 | 讀取用戶輸入(如數(shù)字、字符串) |
| cerr | 標(biāo)準(zhǔn)錯(cuò)誤輸出流 | 無緩沖(即時(shí)輸出),默認(rèn)關(guān)聯(lián)屏幕 | 輸出錯(cuò)誤信息(如程序異常) |
| clog | 標(biāo)準(zhǔn)日志輸出流 | 有緩沖,默認(rèn)關(guān)聯(lián)屏幕 | 輸出日志信息(如運(yùn)行狀態(tài)) |
二、輸入輸出運(yùn)算符(核心操作符)
<iostream> 重載了 >>(提取運(yùn)算符)和 <<(插入運(yùn)算符),用于便捷地讀寫數(shù)據(jù),支持幾乎所有基礎(chǔ)數(shù)據(jù)類型(如 int、double、string 等)。
1. 插入運(yùn)算符<<(用于輸出)
作用:將右側(cè)數(shù)據(jù) “插入” 到左側(cè)的輸出流中(如 cout)。
示例:
int a = 10; double b = 3.14; cout << "a = " << a << ", b = " << b << endl; // 輸出:a = 10, b = 3.14
2. 提取運(yùn)算符>>(用于輸入)
作用:從左側(cè)的輸入流(如 cin)中 “提取” 數(shù)據(jù)到右側(cè)的變量中。
示例:
int x; string s; cin >> x >> s; // 讀取一個(gè)整數(shù)和一個(gè)字符串(以空格/回車分隔)
三、流操縱符(控制 I/O 格式)
操縱符(manipulators)用于調(diào)整輸入輸出的格式(如換行、精度、寬度等),部分基礎(chǔ)操縱符定義在 <iostream> 中(復(fù)雜的在 <iomanip> 中)。
| 操縱符 | 作用 | 示例 |
|---|---|---|
| endl | 換行 + 刷新緩沖區(qū)(確保數(shù)據(jù)即時(shí)輸出) | cout << "Hello" << endl; // 輸出后換行并刷新 |
| flush | 僅刷新緩沖區(qū)(不換行) | cout << "Loading..." << flush; // 即時(shí)顯示進(jìn)度 |
| ends | 插入空字符 \0(用于 C 風(fēng)格字符串結(jié)束) | cout << "test" << ends; // 輸出 "test\0" |
四、流狀態(tài)檢查與控制(處理 I/O 錯(cuò)誤)
流對(duì)象內(nèi)部維護(hù) “狀態(tài)標(biāo)志”,用于表示 I/O 操作是否成功(如輸入錯(cuò)誤、文件結(jié)束等),通過以下成員函數(shù)可查詢或修改狀態(tài):
| 函數(shù) | 作用 | 示例場(chǎng)景 |
|---|---|---|
| good() | 若流狀態(tài)正常(無錯(cuò)誤),返回 true | if (cin.good()) { ... } |
| fail() | 若操作失?。ㄈ巛斎腩愋筒黄ヅ洌?,返回 true | if (cin.fail()) { 處理輸入錯(cuò)誤 } |
| eof() | 若到達(dá)輸入末尾(如文件結(jié)束、用戶按 Ctrl+Z),返回 true | while (!cin.eof()) { ... } |
| clear() | 清除流的錯(cuò)誤狀態(tài)(重置狀態(tài)標(biāo)志) | cin.clear(); // 恢復(fù)輸入流可用 |
| ignore(n) | 忽略輸入緩沖區(qū)中前 n 個(gè)字符(默認(rèn) 1 個(gè)) | cin.ignore(100, '\n'); // 忽略到換行前的字符 |
五、字符 / 行輸入輸出函數(shù)(精細(xì)控制)
流對(duì)象還提供了更底層的成員函數(shù),用于讀取 / 輸出單個(gè)字符或整行數(shù)據(jù)(支持空格)。
| 函數(shù) | 作用 | 示例 |
|---|---|---|
| put(char c) | 輸出單個(gè)字符(ostream 成員) | cout.put('A'); // 輸出 'A' |
| get() | 讀取單個(gè)字符(包括空格、回車) | char c = cin.get(); // 讀取一個(gè)字符 |
| getline(char* buf, int n) | 讀取一行到字符數(shù)組(最多 n-1 個(gè)字符,自動(dòng)加 \0) | char buf[100]; cin.getline(buf, 100); // 讀一行(含空格) |
總結(jié)
<iostream> 的核心接口圍繞 “標(biāo)準(zhǔn)流對(duì)象” 展開,通過 <</>> 運(yùn)算符實(shí)現(xiàn)便捷 I/O,通過操縱符控制格式,通過狀態(tài)函數(shù)處理錯(cuò)誤,通過字符 / 行函數(shù)實(shí)現(xiàn)精細(xì)控制。這些接口是 C++ 控制臺(tái)交互的基礎(chǔ),配合 <iomanip>(格式控制)、<string>(字符串處理)等頭文件可實(shí)現(xiàn)更復(fù)雜的功能。
到此這篇關(guān)于c++中<iostream>常用接口匯總的文章就介紹到這了,更多相關(guān)c++ <iostream>常用接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于C++實(shí)現(xiàn)一個(gè)簡單的音樂系統(tǒng)
C++中的Beep 函數(shù)是一個(gè)發(fā)出嗡鳴聲的函數(shù),本文將利用這個(gè)函數(shù)實(shí)現(xiàn)制作一個(gè)簡單的聲音系統(tǒng)。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-12-12
C++高級(jí)數(shù)據(jù)結(jié)構(gòu)之并查集
這篇文章主要介紹了C高級(jí)數(shù)據(jù)結(jié)構(gòu)之并查集,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05
C/C++?Qt?StringListModel?字符串列表映射組件詳解
StringListModel?字符串列表映射組件,該組件用于處理字符串與列表框組件中數(shù)據(jù)的轉(zhuǎn)換,通常該組件會(huì)配合ListView組件一起使用,本文給大家介紹了C/C++?Qt?StringListModel?字符串列表映射組件的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧2021-12-12
深入理解數(shù)組指針與指針數(shù)組的區(qū)別
本篇文章是對(duì)數(shù)組指針與指針數(shù)組的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
解析C++中的虛擬函數(shù)及其靜態(tài)類型和動(dòng)態(tài)類型
虛擬函數(shù)(Visual Function)亦常被成為虛函數(shù),是C++中的一個(gè)重要特性,本文我們就來解析C++中的虛擬函數(shù)及其靜態(tài)類型和動(dòng)態(tài)類型2016-06-06
從頭學(xué)習(xí)C語言之for語句和循環(huán)嵌套
這篇文章主要為大家詳細(xì)介紹了C語言之for語句和循環(huán)嵌套,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01
C語言庫函數(shù)qsort的使用及模擬實(shí)現(xiàn)
這篇文章主要介紹了C語言庫函數(shù)qsort的使用及模擬實(shí)現(xiàn),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08

