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 檔案流 檔案流是以外存檔案為輸入輸出物件的資料流。輸出檔案流是從記憶體流向外存檔案的資料,輸入檔案流是從外存檔案流向記憶體的資料。每乙個檔案流都有乙個記憶體緩衝區與之對應。請區分檔案流與檔案的概念。...