C IO類 1 流的介紹和流的狀態

2021-08-11 05:49:11 字數 1601 閱讀 4794

基本io庫型別:

istream(輸入流)型別, 提供輸入操作

ostream(輸出流)型別,提供輸出操作

cin, 乙個istream物件,從標準輸入讀取資料

cout, 乙個ostream物件,向標準輸出寫資料

cerr,乙個ostream物件,通常用於輸出程式錯誤資訊,寫入到標準錯誤

>>: 用來從乙個istream物件讀取輸入資料

<<: 用來向乙個ostream物件寫入資料

getline:從乙個給定的istream讀取資料,並存入string物件

檔案io類:

應用程式常常需要讀寫命名檔案,所以我們可以通過fstream向檔案讀寫資料

ifstream 從檔案讀取資料 ofstream 向檔案寫入資料

fstream 讀寫檔案

字串io類:

istringstream 從字串讀取資料

ostringstream 向字串寫入資料

ifstream和istringstream都繼承於istream 所以使用方法類似

io物件無物件或拷貝:

#include#include#includeusing namespace std;

int main()

進行io操作的函式一般使用引用方式,讀寫乙個io物件會改變其狀態

傳遞和返回的引用不能是const的

檢測流輸入是否正確:

讀操作有時候會發生錯誤: 如int ival; cin>> ival;

如果輸入boo則會發生錯誤 無法正確讀取資料,因此,要進行檢測

#include#include#includeusing namespace std;

void testistreamright()

int main()

查詢流的狀態:

有時候我們也需要知道io輸入輸出為什麼會發生錯誤,這時候需要流狀態檢測,然後選擇正確的處理方式

io庫定義了乙個與機器無關的iostate型別,它提供了表達流狀態的完整功能

badbit表示系統級錯誤:如不可恢復或讀寫錯誤,一旦被置位,便不可再被恢復

failbit:發生可恢復錯誤後,failbit被置位,該錯誤可被修正

乙個檔案讀取結束後:

eofbit和failbit都會被置位,goodbit的值為,表示未發生錯誤

badbit,failbit,eofbit任意乙個被置位後,表示發生錯誤

管理條件狀態:

rdstate();   //記住cin當前的狀態

setstate函式將給定條件位置位,表示發生對應錯誤

clear復位對應操作位; 

檢測各個位是否被改變:

void checkbit() 

if (cin.fail())

if (cin.bad())

if (cin.good())

}

位狀態的具體運用:

int main()

接收大檔案流 C IO流的用法

流 stream 為c 的輸入輸出操作提供了許多的便利,通常我們使用的流是std out用於輸出,使用std cin用於接收使用者的輸入,除此之外,c 還提供了檔案流用於實現檔案的讀寫操作,字串流用於進行字串的操作。c 提供的流 stream 包括三種型別 用於控制台輸入 輸出的流 用於檔案操作的檔...

C IO流的操作(二)

檔案在作業系統中是以二進位制 01 的形式儲存到磁碟上的,在c 程式當中,我們可以通過讀取流將檔案讀取到byte當中 讀到記憶體中 也可以通過寫入流將byte寫入檔案 儲存到磁碟上 下面將演示一例檔案與資料庫結合的示例 將檔案儲存到資料庫,再從資料庫還原為檔案。寫入檔案到資料庫部分 寫入按鈕事件 p...

C IO流的操作(二)

檔案在作業系統中是以二進位制 01 的形式儲存到磁碟上的,在c 程式當中,我們可以通過讀取流將檔案讀取到byte當中 讀到記憶體中 也可以通過寫入流將byte寫入檔案 儲存到磁碟上 下面將演示一例檔案與資料庫結合的示例 將檔案儲存到資料庫,再從資料庫還原為檔案。寫入檔案到資料庫部分 寫入按鈕事件 p...