#include <stdio.h>
FILE *fopen(const char *path, const char *mode); //path表示文件路径,mode表示文件使用方式
int fclose( FILE* pf ); //成功关闭返回0,否则返回EOF,并且将错误记录在系统全局变量errno中
//从stream当前位置读取一个字符
int getc(FILE *stream);
//将c写入stream当前位置,成功返回0,否则返回EOF
int fputc(int c, FILE *stream);
//从stream当前位置读取长度为size-1的字符串并保存于s中。成功返回s,否则返回NULL
char *fgets(char *s, int size, FILE *stream);
//将字符串写入stream
int fputs(const char *s, FILE *stream);
//读取nmemb份数据,每份大小为size,并将它们保存在ptr指向的空间。返回读取的数据大小
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
//从ptr指向的空间提取数据向stream写入nmemb份数据,每份大小为size,返回写入的数据大小
size_t fwrite(const void *ptr, size_t size, size_t nmemb,
FILE *stream);
//格式读写,与标准输入输出的printf和scanf一样,只是在前面多了一个文件指针
int fprintf(FILE *stream, const char *format, ...);
int fscanf(FILE *stream, const char *format, ...);
有关文件的使用方式有以下几点说明:
1. 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:
r(read): 读
w(write): 写
a(append): 追加
t(text): 文本文件,可省略不写
b(banary): 二进制文件
+: 读和写
2. 凡用“r”打开一个文件时,该文件必须已经存在, 且只能从该文件读出。
3. 用“w”打开的文件只能向该文件写入。 若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。
4. 若要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。但此时该文件必须是存在的,否则将会出错。
5. 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。
6. 把一个文本文件读入内存时,要将ASCII码转换成二进制码, 而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII码,因此文本文件的读写要花费较多的转换时间。对二进制文件的读写不存在这种转换。
7. 标准输入文件(键盘),标准输出文件(显示器 ),标准出错输出(出错信息)是由系统打开的,可直接使用。文件关闭函数fclose()文件一旦使用完毕,应用关闭文件函数把文件关闭, 以避免文件的数据丢失等错误。
有关文件读写的一些说明:
1. 进行读取操作时,文件必须是以读或读写方式打开的,进行写操作时,必须是以写或追加方式打开的
2. 文件内部有一个位置指针,用来指向文件当前的读写位置,在文件打开时,该指针总是指向文件的第一个字符位置。
3. 对于fgets,如果在未读完size-1个字符前就遇到了EOF或换行符,则读出结束
4. fread和fwrite可以用来从文件读取结构、写入结构
//将文件的位置指针指向由whence加上偏移offset的位置,whence可以是SEEK_SET(文件起始位置)、SEEK_CUR(当前位置)、SEEK_END(终止位置)
int fseek(FILE *stream, long offset, int whence);
//返回文件当前位置
long ftell(FILE *stream);
//将位置指针指向文件头,相当于fseek(stream, 0L, SEEK_SET)
void rewind(FILE *stream);
//获取或设置文件位置指针
int fgetpos(FILE *stream, fpos_t *pos);
int fsetpos(FILE *stream, fpos_t *pos);
C语言中的文件操作
最新推荐文章于 2022-02-22 22:59:13 发布