fopen函數

計算機語言

fopen函數,是用來打開一個文件,其調用的一般形式為文件指針名=fopen(文件名,使用文件方式)。

fopen函數
fopen函數
參數意義
“rt”
只讀打開一個文本文件,只允許讀數據。
“wt”
只寫打開或建立一個文本文件,只允許寫數據。
“at”
追加打開一個文本文件,並在文件末尾寫數據。
“rb”
只讀打開一個二進位文件,只允許讀數據。
fopen函數
fopen函數
“wb”
只寫打開或建立一個二進位文件,只允許寫數據。
“ab”
追加打開一個二進位文件,並在文件末尾寫數據。
“rt+”
讀寫打開一個文本文件,允許讀和寫。
“wt+”
讀寫打開或建立一個文本文件,允許讀寫。
“at+”
讀寫打開一個文本文件,允許讀,或在文件末追加數據。
“rb+”
讀寫打開一個二進位文件,允許讀和寫。
“wb+”
讀寫打開或建立一個二進位文件,允許讀和寫。
“ab+”
讀寫打開一個二進位文件,允許讀,或在文件末追加數據。

使用說明


1、文件使用方式由r,w,a,t,b,+六個字元拼成,各字元的含義是:
r(read):讀
w(write):寫
a(append):追加
t(text):文本文件,可省略不寫
b(banary):二進位文件
+:讀和寫
2、凡用“r”打開一個文件時,該文件必須已經存在,且只能從該文件讀出。
3、用“w”打開的文件只能向該文件寫入。若打開的文件不存在,則以指定的文件名建立該文件,若打開的文件已經存在,則將該文件刪去,重建一個新文件。
4、若要向一個已存在的文件追加新的信息,只能用“a”方式打開文件。但此時該文件必須是存在的,否則將會出錯。
5、在打開一個文件時,如果出錯,fopen將返回一個空指針值NULL。在程序中可以用這一信息來判別是否完成打開文件的工作,並作相應的處理。
6、
1
2
3
4
5
6
if((fp=fopen(name,"rb"))==NULL)
{
printf("\nerror on open %s file!",name);
getch();
exit(1);
}
這段程序的意義是,如果返回的指針為空,表示不能打開C盤根目錄下的hzk16文件,則給出提示信息“error on open c:\hzk16 file!”,下一行getch()的功能是從鍵盤輸入一個字元,但不在屏幕上顯示。在這裡,該行的作用是等待,只有當用戶從鍵盤敲任一鍵時,程序才繼續執行,因此用戶可利用這個等待時間閱讀出錯提示。敲鍵后執行exit(1)退出程序。
7、把一個文本文件讀入內存時,要將ASCII碼轉換成二進位碼,而把文件以文本方式寫入磁碟時,也要把二進位碼轉換成ASCII碼,因此文本文件的讀寫要花費較多的轉換時間。對二進位文件的讀寫不存在這種轉換。
8、標準輸入文件(鍵盤),標準輸出文件(顯示器),標準出錯輸出(出錯信息)是由系統打開的,可直接使用。

延伸閱讀


在眾多的國際互動論壇上,計算機愛好者們以特有的方式紀念這位編程語言的重要奠基人。許多網友的發帖中沒有片言隻字,僅僅留下一個分號“;”。在C語言中,分號標誌著一行指令語句的結束,網友們以此來悼念“C語言之父”,美國著名計算機專家丹尼斯·里奇(Dennis Ritchie)所引領的時代悄然遠去。
在日益紛繁複雜的程序設計語言王國中,C語言因其簡潔、有效、通用的特性而始終佔據一席之地。被譽為“C語言之父”,同時也是操作系統Unix之父的C語言發明人之一——丹尼斯·里奇10月9日以70歲之齡辭世。
生於1941年9月9日的丹尼斯·里奇曾在哈佛大學學習物理學和應用數學,1967年他進入貝爾實驗室,並曾經擔任朗訊技術公司系統軟體研究部門的領導人。
1983年,美國計算機協會將當年的圖靈獎破例頒給了作為軟體工程師的肯·湯普遜與里奇,獲獎原因是他們“研究發展了通用的操作系統理論,尤其是實現了Unix操作系統”。並且,美國計算機協會當年還決定新設立一個獎項——軟體系統獎,以獎勵那些優秀的軟體開發者,首個軟體系統獎當然也是非他們兩人莫屬。
儘管通過Unix拿獎拿到手軟,但令里奇引起最大關注和反響的則是C語言的問世。1999年,里奇和湯普遜為發展C語言和Unix操作系統一起獲得了美國國家技術獎章。
雖然在C語言之後,C++、Java等各式各樣計算機高級語言層出不窮,但不少程序員仍舊認為,C語言簡潔、高效、靈活的特性令其具有獨特魅力。“現在的程序編寫朝著越來越冗長龐大的方向發展,而C語言雖然屬於相對‘低級’的編程語言,但它的簡潔之美是無可替代的。”一位電腦程序員道出了自己格外青睞C語言的原因。
和里奇所創造的C語言一樣,Unix系統也同樣具有簡潔、樸素、小巧的特性。但正如里奇自己所說的那樣,“Unix系統是一個簡單基本的操作系統,但學會欣賞簡潔需要天賦。”而里奇本人,儘管在軟體發展史上佔有舉足輕重的地位,也同樣在從事的領域辛勤而低調地耕耘近40年。