欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:開發(fā)語言 C語言:文件處理

柚子快報激活碼778899分享:開發(fā)語言 C語言:文件處理

http://yzkb.51969.com/

文件處理

一、文件的類型(一)文本文件和二進(jìn)制文件

(二)程序文件和數(shù)據(jù)文件數(shù)據(jù)文件按照二進(jìn)制儲存

二、文件的打開和關(guān)閉(一)文件指針(二)文件的打開和關(guān)閉1、fopen2、fclose

(三)文件的打開方式

三、文件讀寫函數(shù)(一)fgetc(二)fputc(三)fgets(四)fputs(五)fscanf(六)fprintf(七)fwrite(八)fread(九)sscanf(十)sprintf(十一)fseek(十二)ftell(十三)rewind

四、文件緩沖區(qū)結(jié)束語

一、文件的類型

(一)文本文件和二進(jìn)制文件

按照文本的組織信息來分,文件可以分成二進(jìn)制文件和文本文件

(二)程序文件和數(shù)據(jù)文件

按照文件功能來分,可以分成程序文件和數(shù)據(jù)文件

數(shù)據(jù)文件按照二進(jìn)制儲存

二、文件的打開和關(guān)閉

(一)文件指針

每個被使用的文件都在內(nèi)存中開辟了一個相應(yīng)的文件信息區(qū),用來存放文件的相關(guān)信息(如文件的名字,文件狀態(tài)及文件當(dāng)前的位置等)。這些信息是保存在一個結(jié)構(gòu)體變量中的。該結(jié)構(gòu)體類型是由系統(tǒng)聲明的,取名FILE.

struct _iobuf {

char *_ptr;

int _cnt;

char *_base;

int _flag;

int _file;

int _charbuf;

int _bufsiz;

char *_tmpfname;

};

typedef struct _iobuf FILE;

不同的C編譯器的FILE類型包含的內(nèi)容不完全相同,但是大同小異。 每當(dāng)打開一個文件的時候,系統(tǒng)會根據(jù)文件的情況自動創(chuàng)建一個FILE結(jié)構(gòu)的變量,并填充其中的信息

(二)文件的打開和關(guān)閉

1、fopen

FILE * fopen ( const char * filename, const char * mode );

用來打開文件。打開成功的同時,函數(shù)會返回一個文件指針類型,相當(dāng)于文件和指針之間建立聯(lián)系。

int main() {

FILE* pf = fopen("test.txt", "w");

if (pf != NULL) {

fputs("man, what can i see", pf);

fclose(pf);

}

return 0;

}

可以觀察到我們的字符串已經(jīng)被寫入到了文件之中。

2、fclose

int fclose ( FILE * stream );

用來關(guān)閉文件,如果文件成功關(guān)閉,那么就會返回0,如果失敗,返回EOF;

(三)文件的打開方式

文件使用方式 含義 如果指定文件不存在

“r”(只讀) 為了輸入數(shù)據(jù),打開一個已經(jīng)存在的文本文件 出錯

“w”(只寫) 為了輸出數(shù)據(jù),打開一個文本文件 新建文件

“a”(追加) 向文本文件尾添加數(shù)據(jù) 新建文件

“rb”(只讀) 為了輸入數(shù)據(jù),打開一個二進(jìn)制文件 出錯

“wb”(只寫) 為了輸出數(shù)據(jù),打開一個二進(jìn)制文件 新建文件

“ab”(追加) 向一個二進(jìn)制文件尾添加數(shù)據(jù) 新建文件

“r+”(讀寫) 為了讀和寫,打開一個文本文件 出錯

“w+”(讀寫) 為了讀和寫,建議一個新的文件 新建文件

“a+”(讀寫) 打開一個文件,在文件尾進(jìn)行讀寫 新建文件

“rb+”(讀寫) 為了讀和寫打開一個二進(jìn)制文件 出錯

“wb+”(讀寫) 為了讀和寫,新建一個新的二進(jìn)制文件 新建文件

“ab+”(讀寫) 打開一個二進(jìn)制文件,在文件尾進(jìn)行讀和寫 新建文件

三、文件讀寫函數(shù)

(一)fgetc

int fgetc ( FILE * stream );

成功 : 將返回字符讀?。ㄌ嵘秊?int 值)。 如果位置指示器位于文件末尾,則該函數(shù)返回 EOF 并設(shè)置流的 EOF 指示符 (feof)。

失敗 : 返回類型為 int 以適應(yīng)特殊值 EOF,該值表示失敗。 如果發(fā)生其他讀取錯誤,該函數(shù)也會返回 EOF,但會設(shè)置其錯誤指示器 (ferror)。

(二)fputc

int fputc ( int character, FILE * stream );

成功 : 將返回寫入的字符。 失敗 : 返回 EOF 并設(shè)置錯誤指示器 (ferror).

(三)fgets

char * fgets ( char * str, int num, FILE * stream );

成功 : 如果讀取到字符該函數(shù)返回 str,如果一個都沒有讀取到,返回空指針。讀取字符時遇到文件末尾,設(shè)置 eof 指示(feof) 失敗 : 則設(shè)置錯誤指示符 (ferror) 并返回空指針

(四)fputs

int fputs ( const char * str, FILE * stream );

成功 : 將返回一個非負(fù)值。 失敗 : 該函數(shù)返回 EOF 并設(shè)置錯誤指示器 (ferror)。

(五)fscanf

int fscanf ( FILE * stream, const char * format, ... );

成功 : 該函數(shù)返回已成功填充的參數(shù)列表的項(xiàng)目數(shù)。讀取字符時遇到文件末尾,設(shè)置 eof 指示(feof) 失敗 : 該函數(shù)返回 EOF 并設(shè)置錯誤指示器 (ferror)。 如果在解釋寬字符時發(fā)生編碼錯誤,該函數(shù)會將 errno 設(shè)置為 EILSEQ。

(六)fprintf

int fprintf ( FILE * stream, const char * format, ... );

成功 : 將返回寫入的字符總數(shù)。 失敗 : 則設(shè)置錯誤指示符 (ferror) 并返回負(fù)數(shù)。 如果在寫入寬字符時發(fā)生多字節(jié)字符編碼錯誤,則將 errno 設(shè)置為 EILSEQ 并返回負(fù)數(shù)。

(七)fwrite

size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );

成功 : 返回成功寫入的元素總數(shù)。 失敗 : 如果此數(shù)字與 count 參數(shù)不同,則寫入錯誤會阻止函數(shù)完成。在這種情況下,將為流設(shè)置錯誤指示器 (ferror)。

(八)fread

size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

成功 : 返回成功讀取的元素總數(shù)。 失敗 : 如果此數(shù)字與 count 參數(shù)不同,則表示讀取時發(fā)生讀取錯誤或達(dá)到文件末尾。在這兩種情況下,都設(shè)置了正確的指示器,可以分別使用 ferror 和 feof 進(jìn)行檢查。

(九)sscanf

int sscanf ( const char * s, const char * format, ...);

成功 : 該函數(shù)返回已成功填充的參數(shù)列表中的項(xiàng)目數(shù)。 失敗 : 如果在成功解釋任何數(shù)據(jù)之前輸入失敗,返回 EOF。

(十)sprintf

成功 : 將返回寫入的字符總數(shù)。此計數(shù)不包括自動附加在字符串末尾的附加 null 字符。 失敗 : 則返回一個負(fù)數(shù)。

(十一)fseek

定位文件指針

int fseek ( FILE * stream, long int offset, int origin );

成功 :該函數(shù)返回零。 失敗 :返回非零值。 如果發(fā)生讀寫錯誤,則設(shè)置錯誤指示器 (ferror)。

orgin可以取值:

(十二)ftell

求文件指針相對于起始位置的偏移量

long int ftell ( FILE * stream );

成功 : 將返回位置指示器的當(dāng)前值。 失敗 : 返回 -1,并將 errno 設(shè)置為系統(tǒng)特定的正值。

(十三)rewind

將文件指針指向文件的首地址,可以fseek來達(dá)到相同的作用

void rewind ( FILE * stream );

四、文件緩沖區(qū)

ANSIC 標(biāo)準(zhǔn)采用“緩沖文件系統(tǒng)”處理的數(shù)據(jù)文件的,所謂緩沖文件系統(tǒng)是指系統(tǒng)自動地在內(nèi)存中為程序中每一個正在使用的文件開辟一塊“文件緩沖區(qū)”。從內(nèi)存向磁盤輸出數(shù)據(jù)會先送到內(nèi)存中的緩沖區(qū),裝滿緩沖區(qū)后才一起送到磁盤上。如果從磁盤向計算機(jī)讀入數(shù)據(jù),則從磁盤文件中讀取數(shù)據(jù)輸入到內(nèi)存緩沖區(qū)(充滿緩沖區(qū)),然后再從緩沖區(qū)逐個地將數(shù)據(jù)送到程序數(shù)據(jù)區(qū)(程序變量等)。緩沖區(qū)的大小根據(jù)C編譯系統(tǒng)決定的。

結(jié)束語

相信有了這篇文件操作,下次再也不用擔(dān)心忘記重新學(xué)啦。親愛的小伙伴,不要忘記支持博主哦!

柚子快報激活碼778899分享:開發(fā)語言 C語言:文件處理

http://yzkb.51969.com/

參考文章

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19389014.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄