c 檔案輸入和輸出

2021-09-29 16:21:11 字數 1859 閱讀 7229

c++檔案輸入和輸出

一、快速入門例子:

#include

#include

using

namespace std;

intmain()

return0;

}int

main()

myfile.

close()

;}else cout <<

"unable to open file\n"

;return0;

}

二、開啟檔案的方式

開啟檔案:open( filename, mode)

filename:字串表示的檔名,mode:可選擇的開啟方式,可以組合使用 |

mode

開啟方式

ios::in

輸入ios::out

輸出ios::binary

二進位制方式開啟

ios::ate

設定初始位置在檔案尾

追加ios::trunc

輸出,如果原檔案存在,刪掉,新建

ofstream myfile;

myfile.

open

("example.bin"

;//開啟檔案,以二進位制格式追加寫入

三、檢查流的狀態

檢測流狀態的成員函式

state flags

bad()

真:讀或寫操作失敗,比如在檔案開啟失敗或者沒有空間的情況

fail()

真:讀或寫操作失敗、格式錯誤,比如讀整數結果讀成了字元

eof()

真:檔案讀到結束

good()

只要之前的函式有乙個返回真,它就返回假,檢查多個flags

clear()

重置state flags

四、獲取和修改流的位置

獲取和修改流的位置

-tellg() tellp()

返回streampos型別,獲取當前的位置 g : get, p : put

seekg(position) seekp(position)

輸入引數streampos型別,改變流的絕對位置(從檔案頭算起)

seekg(offset,direction) seekp(offset,direction)

對於特定位置的偏離,offset型別:streamoff,direction型別:seekdir,列舉型別,可以是ios::beg(從頭開始算),ios::cur(從當前位置開始算), ios::end(從結尾開始算)

#include

#include

using

namespace std;

intmain()

五、二進位制檔案 塊讀取

write(memory_block, size);

read(memory_block, size);

其中 memory_block是char *(指標), 表示位元組陣列的位址。size是int,表示讀寫的位元組數

#include

#include

using

namespace std;

intmain()

else cout <<

"unable to open file"

;return0;

}

六、緩衝區

緩衝區:streambuf。對於ofstream,每次呼叫put()(它只寫入乙個字元),可以將這個字元插入緩衝區,而不是直接寫入檔案。作業系統還可以定義用於讀取和寫入檔案的其他緩衝層。

當緩衝區被重新整理時,都被寫入(同步):

C 檔案輸入和輸出

1.引入標頭檔案fstream fstream標頭檔案定義了用於檔案輸入的類ifstream和檔案輸出的類ofstream 2.寫檔案 1 建立乙個ofstream物件來管理輸出流 2 將該物件與檔案關聯起來 3 使用cout方式使用該物件,唯一區別是輸出將進入檔案,而不是螢幕。4 關閉到檔案的連線...

C 檔案的輸入和輸出

fstream標頭檔案定義了三種支援檔案io的型別 1 ifstream,提供讀檔案功能 2 ofstream,提供寫檔案功能 3 fstream,提供讀寫同一檔案的功能 fstream除了繼承自iostream的行為外,還定義了自己的倆個新操作 open和close,以及形參為要開啟檔名的建構函式...

C 檔案輸出輸入

此篇文章只是簡要介紹c 中檔案輸入輸出的基本步驟,詳細情況請看附加的鏈結 1.檔案流和檔案流物件 1 檔案流 檔案流是以外存檔案為輸入輸出物件的資料流。輸出檔案流是從記憶體流向外存檔案的資料,輸入檔案流是從外存檔案流向記憶體的資料。每乙個檔案流都有乙個記憶體緩衝區與之對應。請區分檔案流與檔案的概念。...