12.1 c+檔案流的基本概念
12.1.1檔案及及分類
1.程式檔案
包括源程式檔案(字尾名.cpp)、目標檔案(字尾為.obj)、可執行檔案(字尾名.exe)。這類檔案包含的是文字和二進位制程式**。
2.資料檔案
檔案的內容不是程式,而是供程式讀寫的資料。
12.1.2 c++檔案流基礎
1.ifstream:由istream派生而來,提供讀檔案的功能。
2.ofstream:由ostream派生而來,提供寫檔案的功能。
3.fstream:由iostream派生而來,提供讀寫同乙個檔案的功能。
12.2 c++檔案流的建立和關閉
12.2.1 檔案流物件的建立
在c++程式中,如果要對檔案進行讀寫操作,首先需要定義檔案流物件,可以在定義檔案流物件的同時開啟檔案,在只需要建立檔案流物件的同時指定檔名就可以了,這是該檔案流物件的相應的磁碟檔案之間建立的連線,也就是該物件開啟了指定的檔案,接下來就可以通過操作此檔案流物件完成檔案的讀寫任務。
12.2.2 檔案流物件的關閉
在c++程式中,檔案的開啟和關閉總是成對出現,如果沒有開啟無法進行檔案的正常讀寫,會造成資料的丟失和資源的一直被占用。
12.2 c++檔案流的讀寫
12.3.1順序讀寫
在順序讀入中,先讀入檔案前面的資料,件後面的資料。在順序寫入時,先寫入的資料存放在檔案的位置,後接入的資料存放在檔案從前到後面的位置進行的讀寫操作。
12.3.2 隨機讀寫
在檔案中前的友誼記錄當前讀寫位置的變數。
成為檔案讀寫位置的指標。順序讀寫時,每寫乙個資料後,位置指標到移動到他後面乙個位置。如果讀寫的資料項包含了多個位元組,資料項讀寫向讀寫完成後,就能實現隨機讀寫。
1.seek()和seekp()
2.2和ios::end:表示輸入檔案流的結束位置。
3.tellg()和teelp()
12.4 c語言檔案基礎
在c語言中,每個使用的檔案在記憶體中都會開闢乙個新的檔案資訊區,用來儲放檔案的相關資訊。這些資訊儲存在結構體變數中,該結構體型別由系統宣告,取名file。
12.4.2開啟與關閉檔案
1.使用fopen開啟檔案
fopen函式的呼叫方式為:
fopen(檔名,檔案開啟方式);
2.使用fclose關閉檔案
其呼叫方式
fclose(檔案指標);
12.4.3 檔案的讀寫
1.從檔案輸入和輸出乙個字元
c語言提供了乙個輸出乙個字元到磁碟檔案fputc函式。
fputs(ch,fp);
2.從檔案輸入和輸出乙個字串
c語言提供了乙個輸出乙個字串到磁碟檔案
fets函式
fgets(str,n,fp);
4.從檔案按照記錄的方式輸入輸出資料
c語言提供了乙個按記錄方式輸入資料的函式fread。
fread(buffer,size,count,fp);
c語言提供了乙個按記錄方式輸入資料的函式fwrite。
fwithe(buffer,size,count,fp);
5.檔案的隨機讀取
1.fseek函式
fseek函式的功能位置指標移動到所,指標移動到所需的位置。
fseek(檔案型別指標,位移量,起始點)
2.ftell函式
ftell函式的作用是得到檔案位置指標的當前位置。
eg:ftell(fp);
3.rewind函式
rewind函式的作用是返回到檔案開頭返回到檔案開頭
eg:rewind(fp);
檔案流和 檔案描述符
include apue.h int glob 6 int main void else if pid 0 i printf pid d,glob d,var d n getpid glob,var sprintf buf,d n i write stdout fileno,buf,strlen b...
檔案流和檔案描述符
檔案流和檔案描述符 檔案流和 檔案描述符 2011 10 19 16 08 apue 中的一道課後題 習題8.1 include apue.h int glob 6 int main void else if pid 0 i printf pid d,glob d,var d n getpid gl...
載入樹和檔案流
private void loadtree string path,treenode node else 如果不是null 就將節點載入到傳進來的節點下面.if directory.getdirectories dir length 0 判斷當前遍歷到的目錄下面是否還有子目錄.private voi...