日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言操作目录,c语言文件操作整理

發(fā)布時間:2024/9/19 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言操作目录,c语言文件操作整理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

推薦《c陷阱與缺陷》

FILE *fp;fp = fopen(file, "r+");

編程者也許認(rèn)為,程序一旦執(zhí)行上述操作完畢,就可以自由地進(jìn)行讀取和寫入的操作了。遺憾的是,事實總難遂人所愿,為了保持與過去不能同時進(jìn)行讀寫操作的程序的向下兼容性,一個輸入操作不能隨后直接緊跟輸出操作,反之亦然。如果同時進(jìn)行輸入和輸出操作,必須在其中插入fseek函數(shù)調(diào)用。

這個陷阱把我坑了一把,所以將c庫函數(shù)文件操作學(xué)習(xí)整理一番,方便自己以后查閱。

- FILE結(jié)構(gòu)體在stdio.h中定義的FILE結(jié)構(gòu)體。

#ifndef _FILE_DEFINED struct _iobuf { char *_ptr; //文件輸入下一個位置 int _cnt; //當(dāng)前緩沖區(qū)相對位置 char *_base; //文件起始位置 int _flag; //文件標(biāo)志 int _file; //文件描述符 int _charbuf; //檢查緩沖區(qū)狀況,如果無緩沖區(qū)則不讀取 int _bufsiz; //緩沖區(qū)大小 char *_tmpfname; //臨時文件名 }; typedef struct _iobuf FILE;#define _FILE_DEFINED#endif

- 文件的打開

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

1.功能按照mode規(guī)定的方式去打開path里指定文件。2.參數(shù)  path是個字符指針,指向打開或建立文件的字符串  mode是指向文件處理的字符串的指針

3.返回值正常:被打開文件的FILE指針  異常:NULL,未成功打開

- 文件的關(guān)閉

int fclose(FILE *fp);

1.功能關(guān)閉由fp指出的文件,調(diào)用操作系統(tǒng)提供的文件關(guān)閉功能。2.參數(shù)  fp:打開文件的FILE指針3.返回值  正常:0  異常:EOF

- 文件讀取①字符讀取

int fgetc(FILE *stream);

1.功能從stream所指文件中讀取一個字符2.參數(shù)  stream:要讀取字符文件的FILE指針3.返回值  正常:返回讀取字符  異常:返回EOF

②字符串讀取

char *fgets(char *s, int size, FILE *stream);

1.功能從stream中讀取大小為size-1的字符,最后加上字符串結(jié)束符'\0'2.參數(shù)  s:接收字符串的地址,數(shù)組或是指針  size:讀取字符大小  stream:讀取的文件的FILE指針3.返回值  正常:字符串首地址(char *s的地址)  異常:NULL

使用feof或是ferror去判別是否到達(dá)文件尾部和發(fā)生錯誤。

- 文件的寫入①字符寫入

int fputc(int c, FILE *stream);

1.功能把字符c寫入stream指向的文件2.參數(shù)  c:字符  stream:寫入的文件的FILE指針3.返回值  正常:寫入字符  異常:EOF②字符串的寫入

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

1.功能將str寫入stream指向的文件中2.參數(shù)  s:寫入字符串  stream:要寫入字符串的文件的FILE指針3.返回值  正常:寫入的字符串長度  異常:返回NULL

使用feof或是ferror去判別是否到達(dá)文件尾部和發(fā)生錯誤。

③格式化數(shù)據(jù)寫入

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

1.功能與printf功能相同,寫入文件中2.參數(shù)  stream:寫入的文件的FILE指針  format:字符串指針,其中包含寫入數(shù)據(jù)的格式3.返回值  無

- 二進(jìn)制形式的讀寫

①二進(jìn)制形式讀取文件數(shù)據(jù)

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

1.功能按二進(jìn)制形式將stream指向的文件的size*nmemb的數(shù)據(jù)讀到ptr數(shù)據(jù)區(qū)去2.參數(shù)  ptr:viod指針類型,讀到數(shù)據(jù)存放的首地址  size:數(shù)據(jù)塊的大小,字節(jié)數(shù)  nmemb:一次讀多少數(shù)據(jù)塊  stream:要讀取數(shù)據(jù)文件的FILE指針3.返回值  正常:實際讀取數(shù)據(jù)塊個數(shù)  異常:0(具體通過feof()和ferror()判定)②二進(jìn)制形式寫數(shù)據(jù)

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

與fread相反

③二進(jìn)制形式讀取一個整數(shù)

int getw(FILE *stream);

④二進(jìn)制形式寫入一個整數(shù)

int putw(int w, FILE *stream);

- 文件狀態(tài)檢查①文件結(jié)束

int feof(FILE *stream);

1.功能判斷文件是否結(jié)束2.返回值  0:文件未結(jié)束  1:文件結(jié)束②文件讀寫出錯

int ferror(FILE *stream);

1.功能檢查讀寫stream指向的文件是否出錯2.返回值  0:無錯誤  1:出錯③錯誤標(biāo)志清除

void clearerr(FILE *stream);

1.功能清楚stream指向的文件的錯誤標(biāo)志

- 文件的操作的文件①當(dāng)前文件位置

long ftell(FILE *stream);

1.功能文件開頭與當(dāng)前的偏移量2.返回值  正常:位移量  異常:-1

②倒帶

void rewind(FILE *stream);

1.功能文件位置指針重新指向開頭

③fseek

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

1.功能使文件定位移到指定位置:基于whence的相對offest位置處2.參數(shù)  offset:字節(jié)位移量  whence:    SEEK_SET 0 文件開頭    SEEK_CUR 1 文件當(dāng)前位置    SEEK_END 2 文件末尾3.返回值  正常:當(dāng)前位置  異常:-1

- exit()函數(shù)

void exit(int status);

1.功能使程序立即終止執(zhí)行,將緩沖區(qū)數(shù)據(jù)輸出并關(guān)閉所有打開文件2.參數(shù)

舉報/反饋

總結(jié)

以上是生活随笔為你收集整理的c语言操作目录,c语言文件操作整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。