流式文件操作常用函數(shù)詳細說明_第1頁
流式文件操作常用函數(shù)詳細說明_第2頁
流式文件操作常用函數(shù)詳細說明_第3頁
流式文件操作常用函數(shù)詳細說明_第4頁
流式文件操作常用函數(shù)詳細說明_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

流式文件操作常用函數(shù)說明

目錄TOC\o"1-5"\h\z\o"CurrentDocument"、常用函數(shù)列表 2\o"CurrentDocument"、函數(shù)詳細介紹 2fopen() 2\o"CurrentDocument"fclose() 3\o"CurrentDocument"fputc() 3\o"CurrentDocument"fgetc() 3\o"CurrentDocument"fseek() 4\o"CurrentDocument"fputs() 4\o"CurrentDocument"fgets() 4\o"CurrentDocument"fprintf() 4\o"CurrentDocument"fscanf() 5\o"CurrentDocument"feof() 5\o"CurrentDocument"ferror() 5\o"CurrentDocument"rewind() 5\o"CurrentDocument"remove() 5\o"CurrentDocument"fread() 5\o"CurrentDocument"fwrite() 6\o"CurrentDocument"tmpfile() 6\o"CurrentDocument"tmpnam(); 6流式文件操作常用函數(shù)說明一、常用函數(shù)列表FILE這個結(jié)構(gòu)包含了文件操作的基本屬性,對文件的操作都要通過這個結(jié)構(gòu)的指針來進行,此種文件操作常用的函數(shù)見下表函數(shù)功能fopen()打開流fclose()關閉流fputc()寫一個字符到流中fgetc()從流中讀一個字符fseek()在流中定位到指定的字符fputs()寫字符串到流fgets()從流中讀一行或指定個字符fprintf()按格式輸出到流fscanf()從流中按格式讀取feof()到達文件尾時返回真值ferror()發(fā)生錯誤時返回其值rewind()復位文件定位器到文件開始處remove()刪除文件fread()從流中讀指定個數(shù)的字符fwrite()向流中寫指定個數(shù)的字符tmpfile()生成一個臨時文件流tmpnam()生成一個唯一的文件名二、函數(shù)詳細介紹1.fopen()fopen的原型是:FILE*fopen(constchar*filename,constchar*mode),fopen實現(xiàn)三個功能:為使用而打開一個流把一個文件和此流相連接給此流返回一個FILR指針參數(shù)filename指向要打開的文件名,mode表示打開狀態(tài)的字符串,其取值如下:"r"以只讀方式打開文件"w”以只寫方式打開文件"a"以追加方式打開文件"r+"以讀/寫方式打開文件,如無文件出錯"w+"以讀/寫方式打開文件,如無文件生成新文件一個文件可以以文本模式或二進制模式打開,這兩種的區(qū)別是:在文本模式中回車被當成一個字符”\n”,而二進制模式認為它是兩個字符0x0D,0x0A;如果在文件中讀到0x1B,文本模式會認為這是文件結(jié)束符,也就是二進制模型不會對文件進行處理,而文本方式會按一定的方式對數(shù)據(jù)作相應的轉(zhuǎn)換。系統(tǒng)默認的是以文本模式打開,可以修改全部變量_fmode的值來修改這個設置,例如_fmode=O_TEXT;就設置默認打開方式為文本模式;W_fmode=O_BINARY;則設置默認打開方式是二進制模式。我們也可以在模式字符串中指定打開的模式,如"rb”表示以二進制模式打開只讀文件,"w+t”或"wt+”表示以文本模式打開讀瀉文件。此函數(shù)返回一個FILE指針,所以申明一個FILE指針后不用初始化,而是用fopen()來返回一個指針并與一個特定的文件相連,如果成敗,返回NULL。例:FILE*fp;if(fp=fopen("123.456”,"wb"))puts("打開文件成功,elseputs("打開文件成敗,fclose()fclose()的功能就是關閉用fopen()打開的文件,其原型是:intfclose(FILE*fp);如果成功,返回0,失敗返回EOF。在程序結(jié)束時一定要記得關閉打開的文件,不然可能會造成數(shù)據(jù)丟失的情況例:fclose(fp);fputc()向流寫一個字符,原型是intfputc(intc,FILE*stream);成功返回這個字符,失敗返回EOF。例:fputc(''X'',fp);fgetc()從流中讀一個字符,原型是intfputc(FILE*stream);成功返回這個字符,失敗返回EOF。例:charch1=fgetc(fp);fseek()此函數(shù)一般用于二進制模式打開的文件中,功能是定位到流中指定的位置,原型是intfseek(FILE*stream,longoffset,intwhence);如果成功返回0,參數(shù)offset是移動的字符數(shù),whence是移動的基準,取值是:符號常量值基準位置SEEK_SET0文件開頭SEEK_CUR1當前讀寫的位置SEEK_END2文件尾部例:fseek(fp,1234L,SEEK_CUR);//把讀寫位置從當前位置向后移動1234字節(jié)(L后綴表示長整數(shù))fseek(fp,0L,2);//把讀寫位置移動到文件尾fputs()寫一個字符串到流中,原型intfputs(constchar*s,FILE*stream);例:fputs("ILoveYou",fp);fgets()從流中讀一行或指定個字符,原型是char*fgets(char*s,intn,FILE*stream);從流中讀取n-1個字符,除非讀完一行,參數(shù)s是來接收字符串,如果成功則返回s的指針,否則返回NULL。例:如果一個文件的當前位置的文本如下Love,IHaveBut 如果用fgets(str1,4,file1);則執(zhí)行后str1="Lov”,讀取了4-1=3個字符,而如果用fgets(str1,23,file1);則執(zhí)行str="Love,IHave”,讀取了一行(不包括行尾的''\n'')。fprintf()按格式輸入到流,其原型是intfprintf(FILE*stream,constchar*format[,argument,…]);其用法和printf()相同,不過不是寫到控制臺,而是寫到流罷了例:fprintf(fp,”%2d%s”,4,”Hahaha”);fscanf()從流中按格式讀取,其原型是intfscanf(FILE*stream,constchar*format[,address,…]);其用法和scanf()相同,不過不是從控制臺讀取,而是從流讀取罷了。例:fscanf(fp,"%d%d”,&x,&y);feof()檢測是否已到文件尾,是返回真,否則返回0,其原型是intfeof(FILE*stream);例:if(feof(fp))printf("已到文件尾”);ferror()原型是intferror(FILE*stream);返回流最近的錯誤代碼,可用clearerr()來清除它,clearerr()的原型是voidclearerr(FILE*stream);例:printf("%d",ferror(fp));rewind()把當前的讀寫位置回到文件開始,原型是voidrewind(FILE*stream);其實本函數(shù)相當于fseek(fp,0L,SEEK_SET);例:rewind(fp);remove()刪除文件,原型是intremove(constchar^filename);參數(shù)就是要刪除的文件名,成功返回0。例:remove("c:\\io.sys");fread()從流中讀指定個數(shù)的字符,原型是size_tfread(void*ptr,size_tsize,size_tn,FILE*stream);參數(shù)ptr是保存讀取的數(shù)據(jù),void*的指針可用任何類型的指針來替換,如char*、int*等等來替換;size是每塊的字節(jié)數(shù);n是讀取的塊數(shù),如果成功,返回實際讀取的塊數(shù)(不是字節(jié)數(shù)),本函數(shù)一般用于二進制模式打開的文件中。例:charx[4230];FILE*file1=fopen(”c:\\msdos.sys”,”r”);fread(x,200,12,file1);//共讀取200*12=2400個字節(jié)fwrite()與fread對應,向流中寫指定的數(shù)據(jù),原型是size_tfwrite(constvoid*ptr,size_tsize,size_tn,FILE*stream);參數(shù)ptr是要寫入的數(shù)據(jù)指針,void*的指針可用任何類型的指針來替換,如char*、int*等等來替換;size是每塊的字節(jié)數(shù);n是要寫的塊數(shù),如果成功,返回實際寫入的塊數(shù)(不是字節(jié)數(shù)),本函數(shù)一般用于二進制模式打開的文件中。例:charx[]="ILoveYou";fwire(x,6,12,fp);//寫入6*12=72字節(jié)將把"ILove"寫到流fp中12次,共72字節(jié)16?tmpfi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論