创建和打开函数:
FILE fopen(const char * path,const char mode);
fopen()实现打开指定文件filename,其中mode为打开模式
|
标志 | 含义 |
---|---|
r,rb | 以只读形式打开,若文件不存在 ,返回错误 |
w,wb | 以只写方式打开。如果文件不存在,则创建该文件;如果文件存在,则覆盖原文件 |
a,ab | 以追加方式打开。如果文件不存在,则创建该文件;如果文件存在,在文件尾添加 |
其中b用于区分二进制文件和文本文件
读写库函数:
int fgetc(FILE fp):*
从fp指向的文件中读取一个字符;失败返回文件结束标志EOF(-1);
int fputc(char c ,FILEfp):*
把字符ch写入文件指针变量fp所指向的文件中;失败返回EOF(-1)
char * fgets(char str,int n,FILE fp):
从fp所指向的文件读入一个长度(n-1)的字符串,然后在最后加一个‘\0’,存放在字符数组str中;如果在读完n-1个字符前遇到换行符‘\n’或文件结束符EOF,读入即结束,但会将遇到的换行符‘\n’也作为一个字符读入;失败返回NULL
int fputs(const char *str,FILE *fp);
把str所指向的字符串写入文件指针变量fp所指向的文件中;成功返回非负,失败返回EOF
int fprintf(FILE* fp,const charformat…);
int fscanf(FILE fp,const char * format…);
size_t fread(void prt,size_t size,size_t n,FILE fp);
**size_t fwrite(consr void ptr,size_t size,size_t n,FILE fp)
fread()实现从流fp中读取n个字段,每个字段为size个字节,并将读取的字段放入ptr所指的数组中,返回实际读取的字段数。在读取的字段数小于num时,可能是在函数调用时出现错误,也可能死读到文件的结尾。需要通过feof()和ferror()判断。
write()实现从缓冲区ptr所指的数组中把n个字段写到流fp中,每个字段长为size个字节,返回实际写入的字段数。
定位函数:
void rewind(FILE fp)使文件标记指向文件头
int fgetpos(FILE fp,fpos_t pos);
int fsetpos(FILE fp,const fpos_t pos);
int fssek(FILE fp,long offset,int whence):
whence:SEEK_SET(文件开始位置)SEEK_CUR(文件当前位置)SEEK_END(文件末尾位置)
offset:正数表示向前移动的字节数,负数表示向后移动
关闭函数:
int fclose(FILE fp)
判断函数:
int feof(FILEfp):
在达到文件流的文件尾时返回一个非0值
int ferror(FILEfp):
检查流流中的错误,没有错误返回0,否则返回非0,如果发生错误,使用perror()检测发生什么错误
void perror(const char str):
打印字符串和一个相应的执行定义的错误信息到全局变量errno中