![文件操作常用函數(shù)_第1頁](http://file4.renrendoc.com/view/e3e78ec234e41a8fef069c0453277fb1/e3e78ec234e41a8fef069c0453277fb11.gif)
![文件操作常用函數(shù)_第2頁](http://file4.renrendoc.com/view/e3e78ec234e41a8fef069c0453277fb1/e3e78ec234e41a8fef069c0453277fb12.gif)
![文件操作常用函數(shù)_第3頁](http://file4.renrendoc.com/view/e3e78ec234e41a8fef069c0453277fb1/e3e78ec234e41a8fef069c0453277fb13.gif)
![文件操作常用函數(shù)_第4頁](http://file4.renrendoc.com/view/e3e78ec234e41a8fef069c0453277fb1/e3e78ec234e41a8fef069c0453277fb14.gif)
![文件操作常用函數(shù)_第5頁](http://file4.renrendoc.com/view/e3e78ec234e41a8fef069c0453277fb1/e3e78ec234e41a8fef069c0453277fb15.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——文件操作常用函數(shù)fopen
函數(shù)簡介
函數(shù)功能:開啟一個文件
函數(shù)原型:FILE*fopen(constchar*path,constchar*mode);相關(guān)函數(shù):open,fclose,fopen_s[1],_wfopen所需庫:
返回值:文件順利開啟后,指向該流的文件指針就會被返回。假使文件開啟失敗則返回NULL,并把錯誤代碼存在errno中。
一般而言,開啟文件后會作一些文件讀取或?qū)懭氲膭幼?,若開啟文件失敗,接下來的讀寫動作也無法順利進行,所以一般在fopen()后作錯誤判斷及處理。
參數(shù)說明:
參數(shù)path字符串包含欲開啟的文件路徑及文件名,參數(shù)mode字符串則代表著流形態(tài)。mode有以下幾種形態(tài)字符串:
r以只讀方式開啟文件,該文件必需存在。r+以可讀寫方式開啟文件,該文件必需存在。rb+讀寫開啟一個二進制文件,允許讀數(shù)據(jù)。rw+讀寫開啟一個文本文件,允許讀和寫。
w開啟只寫文件,若文件存在則文件長度清為0,即該文件內(nèi)容會消失。若文件不存在則建立該文件。
w+開啟可讀寫文件,若文件存在則文件長度清為零,即該文件內(nèi)容會消失。若文件不存在則建立該文件。
a以附加的方式開啟只寫文件。若文件不存在,則會建立該文件,假使文件存在,寫入的數(shù)據(jù)會被加到文件尾,即文件原先的內(nèi)容會被保存。(EOF符保存)
a+以附加方式開啟可讀寫的文件。若文件不存在,則會建立該文件,假使文件存在,寫入的數(shù)據(jù)會被加到文件尾后,即文件原先的內(nèi)容會被保存。(原來的EOF符不保存)
wb只寫開啟或新建一個二進制文件;只允許寫數(shù)據(jù)。
wb+讀寫開啟或建立一個二進制文件,允許讀和寫。ab+讀寫開啟一個二進制文件,允許讀或在文件末追加數(shù)據(jù)。
at+開啟一個叫string的文件,a表示append,就是說寫入處理的時候是接著原來文件已有內(nèi)容寫入,不是從頭寫入覆蓋掉,t表示開啟文件的類型是文本文件,+號表示對文件既可以讀也可以寫。
上述的形態(tài)字符串都可以再加一個b字符,如rb、w+b或ab+等組合,參與b字符用來告訴函數(shù)庫以二進制模式開啟文件。假使不加b,表示默認(rèn)加了t,即rt,wt,其中t表示以文本模式開啟文件。由會參考umask值。
有些C編譯系統(tǒng)可能不完全提供所有這些功能,有的C版本不用\而用\等,讀者注意所用系統(tǒng)的規(guī)定。
二進制和文本模式的區(qū)別
1.在windows系統(tǒng)中,文本模式下,文件以\代表換行。若以文本模式開啟文件,并用fputs等函數(shù)寫入換行符\時,函數(shù)會自動在\前面加上\。即實際寫入文件的是\。
2.在類Unix/Linux系統(tǒng)中文本模式下,文件以\代表換行。所以Linux系統(tǒng)中在文本模式和二進制模式下并無區(qū)別。
fopen()所建立的新文件會具有
S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)權(quán)限,此文件權(quán)限也
fclose()
功能:關(guān)閉一個流。注意:使用fclose()函數(shù)就可以把緩沖區(qū)內(nèi)最終剩余的數(shù)據(jù)輸出到磁盤文件中,并釋放文件指針和有關(guān)的緩沖區(qū)。
用法:intfclose(FILE*stream);
fputc
函數(shù)名稱:寫字符文件函數(shù)fputc()
函數(shù)功能:將字符ch寫到文件指針fp所指向的文件的當(dāng)前寫指針的位置。函數(shù)格式:intfputc(intn,File*fp)
參數(shù)解釋:fp為文件指針,它的值是執(zhí)行fopen()開啟文件時獲得的。n為輸出的字符量。
雖然函數(shù)被定義為整形數(shù),但僅用其低八位。
返回值:在正常調(diào)用狀況下,函數(shù)返回讀取字符的ASCII碼值,出錯時,返回EOF(-1)。當(dāng)正確寫入一個字符或一個字節(jié)的數(shù)據(jù)后,文件內(nèi)部寫指針會自動后移一個字節(jié)的位置。EOF是在頭文件stdio.h中定義的宏。
fgetc
格式:intfgetc(FILE*stream);
意為從文件指針stream指向的文件中讀取一個字符,讀取一個字節(jié)后,光標(biāo)位置后移一個字節(jié)。
這個函數(shù)的返回值,是返回所讀取的一個字節(jié)。假使讀到文件末尾或者讀取出錯時返回EOF。
Fread
size_tfread(void*buffer,size_tsize,size_tcount,FILE*stream);
功能:
從一個文件流中讀數(shù)據(jù),讀取count個元素,每個元素size字節(jié).假使調(diào)用成功返回count.返回實際讀取size*count字節(jié).如不成功,返回實際讀取的元素個數(shù)
參數(shù):buffer
用于接收數(shù)據(jù)的內(nèi)存地址,大小至少是size*count字節(jié).size
單個元素的大小,單位是字節(jié)count
元素的個數(shù),每個元素是size字節(jié).stream輸入流返回值:
實際讀取的元素數(shù).假使返回值與count(不是count*size)不一致,則可能文件結(jié)尾或發(fā)生錯誤.
從ferror和feof獲取錯誤信息或檢測是否到達(dá)文件結(jié)尾.
fwrite
size_tfwrite(constvoid*buffer,size_tsize,size_tcount,FILE*stream);注意:這個函數(shù)以二進制形式對文件進行操作,不局限于文本文件返回值:返回實際寫入的數(shù)據(jù)塊數(shù)目
(1)buffer:是一個指針,對fwrite來說,是要輸出數(shù)據(jù)的地址;(2)size:要寫入內(nèi)容的單字節(jié)數(shù);
(3)count:要進行寫入size字節(jié)的數(shù)據(jù)項的個數(shù);(4)stream:目標(biāo)文件指針;
(5)返回實際寫入的數(shù)據(jù)項個數(shù)count。
說明:寫入到文件的哪里?這個與文件的開啟模式有關(guān),假使是w+,則是從filepointer指向的地址開始寫,替換掉之后的內(nèi)容,文件的長度可以不變,stream的位置移動count個數(shù);假使是a+,則從文件的末尾開始添加,文件長度加大。
fseek對此函數(shù)有作用,但是fwrite[1]函數(shù)寫到用戶空間緩沖區(qū),并未同步到文件中,所以修改后要將內(nèi)存與文件同步可以用fflush(FILE*fp)函數(shù)同步。
fseek
功能
重定位流(數(shù)據(jù)流/文件)上的文件內(nèi)部位置指針
注意:不是定位文件指針,文件指針指向文件/流。位置指針指向文件內(nèi)部的字節(jié)位置,隨著文件的讀取會移動,文件指針假使不重新賦值將不會改變指向別的文件。
用法
intfseek(FILE*stream,longoffset,intfromwhere);
描述
函數(shù)設(shè)置文件指針stream的位置。假使執(zhí)行成功,stream將指向以fromwhere(偏移起始位置:文件頭0(SEEK_SET),當(dāng)前位置1(SEEK_CUR),文件尾2(SEEK_END))為基準(zhǔn),偏移offset(指針偏移量)個字節(jié)的位置。假使執(zhí)行失敗(譬如offset超過文件自身大小),則不改變stream指向的位置。
fseek函數(shù)和lseek函數(shù)類似,但lseek返回的是一個off_t數(shù)值,而fseek返回的是一個整型。
返回值
成功,返回0,失敗返回-1,并設(shè)置errno的值,可以用perror()函數(shù)輸出錯誤。fseekpositionthefile(文件)position(位置)pointer(指針)forthefilereferencedbystreamtothebytelocationcalculatedbyoffset.
fprintf
簡介
是C/C++中的一個格式化寫—庫函數(shù);其作用是格式化輸出到一個流/文件中;函數(shù)完整形式:intfprintf(FILE*stream,char*format,[argument])
功能
傳送格式化輸出到一個文件中,可用于打印機輸出。
用法
#include
intfprintf(FILE*stream,constchar*format,...);
fprintf()函數(shù)根據(jù)指定的format(格式)發(fā)送信息(參數(shù))到由stream(流)指定的文件.fprintf()只能和printf()一樣工作.fprintf()的返回值是輸出的字符數(shù),發(fā)生錯誤時返回一個負(fù)值.
fscanf
fscanf函數(shù)的一般形式
函數(shù)名:fscanf
功能:從一個流中執(zhí)行格式化輸入,fscanf遇到空格和換行時終止,注意空格時也終止。這與fgets有區(qū)別,fgets遇到空格不終止。
用法:intfscanf(FILE*stream,char*format,[argument...]);intfscanf(文件指針,格式字符串,輸入列表);forexample:FILE*fp;chara[10];intb;doublec;
fscanf(fp,\返回值:整型,成功讀入的參數(shù)的個數(shù)
編輯本段格式字符說明
常用基本參數(shù)對照:%d:讀入一個十進制整數(shù).
%i:讀入十進制,八進制,十六進制整數(shù),與%d類似,但是在編譯時通過數(shù)據(jù)前置來區(qū)分進制,如參與“0x〞則是十六進制,參與“0〞則為八進制。例如串“031〞使用%d時會被算作31,但是使用%i時會算作25.
%u:讀入一個無符號十進制整數(shù).
%f%F%g%G:用來輸入實數(shù),可以用小數(shù)形式或指數(shù)形式輸入.%x%X:讀入十六進制整數(shù).%o':讀入八進制整數(shù).
%s:讀入一個字符串,遇空格終止。
%c:讀入一個字符。無法讀入空值??崭窨梢员蛔x入。附加格式說明字符表修飾符說明L/l長度修飾符輸入\長\數(shù)據(jù)h長度修飾符輸入\短\數(shù)據(jù)例如說明
假使要求從標(biāo)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 1《白鷺》說課稿-2024-2025學(xué)年統(tǒng)編版語文五年級上冊
- 2025技術(shù)咨詢合同書
- 2025大連市住宅小區(qū)物業(yè)管理委托合同
- 2024年五年級品社下冊《同是炎黃子孫》說課稿 山東版001
- 5《玲玲的畫》說課稿-2024-2025學(xué)年語文二年級上冊統(tǒng)編版
- 2023二年級數(shù)學(xué)下冊 6 有余數(shù)的除法第5課時 解決問題(1)說課稿 新人教版
- 27我的伯父魯迅先生(說課稿)-2024-2025學(xué)年六年級上冊語文統(tǒng)編版001
- 2024-2025學(xué)年高中地理下學(xué)期第4周說課稿(世界的自然資源)
- 2023三年級數(shù)學(xué)上冊 一 動物趣聞-克、千克、噸的認(rèn)識 信息窗2噸的認(rèn)識說課稿 青島版六三制
- 蕪湖廠房推拉棚施工方案
- 蘇北四市(徐州、宿遷、淮安、連云港)2025屆高三第一次調(diào)研考試(一模)生物試卷(含答案)
- 監(jiān)察部部長崗位職責(zé)
- 山西省太原市杏花嶺區(qū)年三年級數(shù)學(xué)第一學(xué)期期末考試模擬試題含解析
- 《農(nóng)機化促進法解讀》課件
- 最高法院示范文本發(fā)布版3.4民事起訴狀答辯狀示范文本
- 2024年英語高考全國各地完形填空試題及解析
- 2024至2030年中國餐飲管理及無線自助點單系統(tǒng)數(shù)據(jù)監(jiān)測研究報告
- 2024年燃?xì)廨啓C值班員技能鑒定理論知識考試題庫-下(多選、判斷題)
- 2024年服裝門店批發(fā)管理系統(tǒng)軟件項目可行性研究報告
- 《Python程序設(shè)計》課件-1:Python簡介與應(yīng)用領(lǐng)域
- 體育概論(第二版)課件第三章體育目的
評論
0/150
提交評論