国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

c/c++文件操作總結

2019-11-08 03:15:03
字體:
來源:轉載
供稿:網友

1、FILE

         FILE是一個結構體,記錄了文件的相關信息,其在stdio.h中定義如下:

         struct_iobuf

          {                char*_ptr;                int  _cnt;                char*_base;                int  _flag;                int  _file;                int  _charbuf;                int  _bufsiz;                char*_tmpfname;        };         typedefstruct _iobuf FILE;

2、EOF

         EOF在stdio.h中被定義為-1,只是一個返回值,當fgetc()等函數遇到錯誤或者遇到文件尾時都會返回此值,因此不能憑此返回值判斷是否遇到了文件尾。判斷是否遇到文件尾的正確做法是使用feof函數。

3、feof函數

         聲明在stdio.h中,函數原型為:int feof(FILE *stream)

         其作用是判斷文件當前指針所指的位置是否為文件尾(假如文件最后一個字符的指針為p,則p+1的位置就會被判定為文件尾),是則返回非零值,否則返回零值。

4、fgetc函數

         聲明在stdio.h中, 函數原型為:int fgetc(FILE * stream)

         其作用是獲取文件當前指針所指向的字符,若成功則將文件當前指針向后移動一個字節以指向新字符,并返回剛剛獲取到的字符;若失敗或者文件當前指針指向文件尾,則返回EOF(-1)。

5、fgets函數

         聲明在stdio.h中, 函數原型為:char *fgets(char *buf, int bufsize, FILE *stream)

         其作用是讀取從文件當前指針所指字符開始的bufsize-1個字符,并在末尾添加一個‘0’后拷貝到buf中,最后將文件當前指針指向下一個未讀的新字符。但若未讀滿bufsize-1個字符前遇到了換行符(特指Unix下的換行符‘/n’)或者文件尾,則結束此次讀取,后續操作一樣(‘/n’不會被丟棄,也會被拷貝到buf中,文件指針會指向‘/n’后的新字符;但若是文件尾,則文件指針就指向文件尾,會使下次讀取返回NULL)。這里的bufsize就是buf的大小。若成功則返回buf,若失敗或者讀取的第一個字符就是文件尾則返回NULL。

6、fseek函數

         聲明在stdio.h中,函數原型為:int fseek(FILE *stream, long offset, int fromwhere)

         其作用是將文件當前指針重新指向從fromwhere偏移offset個字節的地方。成功返回0,失敗返回-1。

         其中offset為正值則向后偏移,為負值則向前偏移。fromwhere值及其含義為:

         SEEK_SET(0): 文件開頭

         SEEK_CUR(1): 當前位置

         SEEK_END(2): 文件結尾


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 鄂伦春自治旗| 沈阳市| 楚雄市| 神木县| 沂水县| 明水县| 宣威市| 平原县| 贡嘎县| 柞水县| 康马县| 涿鹿县| 无锡市| 铜山县| 双流县| 蚌埠市| 鄄城县| 郑州市| 米泉市| 会昌县| 香河县| 塔城市| 都安| 清远市| 望奎县| 迁安市| 南溪县| 犍为县| 黔西县| 大田县| 五家渠市| 阜平县| 柳林县| 延边| 盈江县| 伊川县| 大连市| 永兴县| 凯里市| 连云港市| 遵义县|