关于文件相关的函数总结

文件打开及关闭

fopen()

FILE *fopen( const char *fname , const char *mode)
// fname要打开的文件名
// mode指示文件的打开模式
// fopen()返回值类型是文件类型指针

fclose()

int fclose( FILE *fp )
// 文件关闭成功,则返回0,否则返回-1
// fclose()可以把缓冲区内的剩余数据输出到磁盘文件中
// fclose()并释放文件指针和相关的缓存区

按照字符进行读写

fputc()

int fputc( int ch , FILE *fp )
// ch被写入的字符,该字符以其对应的int值传递
// fp指向FILE对象的指针
// fputc()写入成功则返回写入的字符,失败返回EOF

fgetc()

int fgetc( FILE *fp )
// 从文件指针fp指向的文件中读取一个字符
// 返回读取的一个字节,如果读到文件末尾则返回EOF

按照字符串进行读写

fgets()

char *fgets( char *s , int size , FILE *fp)
// 从文件指针fp所指的文件内读入字符并存到参数s所指的内存空间
// 读取字符串,直到:换行符,文件尾,或者已读size-1个字符为止,最后加上 NULL 即'\0' 表示字符串的结束
// 读写成功则返回字符串指针,否则返回NULL

fputs()

int fputs( char *string , FILE *fp)
// 将string所指向的字符串写入fp中
// 读写成功返回0,否则返回非0

按照磁盘文件进行读写

fprintf()

int fprintf( FILE *fp , char *format [argument])
// 同printf()
// fprintf( fp , "%d,%c" , cnt , ch  );

fscanf()

int fscanf( FILE *fp , char *format [argument...])
// 同scanf()
// scanf( fp , "%d %c",&cnt ,&ch);

按组进行读写

fwrite()

size_t fwrite( const void*buffer , size_t size , size_t count , FILE *fp)
// 将一个数据块写入fp指向的文件中
// buffer是指向所要输出参数的地址 
// size是每次所要写入的字节数
// count是写入次数
// fp目标文件指针
// 读写成功则返回写入字节数

fread()

size_t fread( const void*buffer , size_t size , size_t count , FILE *fp)
// 从fp指向的文件中读取一个数据块
// buffer是指向所要读出的地址 
// size是每次所要读出的字节数
// count是读出次数
// fp目标文件指针
// 读写成功则返回读出字节数

位置指针

rewind()

void rewind( FILE *fp )
// 将位置指针重新定位到文件开头
// 没有返回值

fseek()

int fseek( FILE *fp ,long offset ,int start)
// fseek()可以按照需要任意移动位置
// offset是以start参数为起始位置的偏移量
// start 取值如下:
// SEEK_SET SEEK_CUR SEEK_END 
// 相应整数值为:0,1,2
// 分别表示:文件开头位置,当前位置,文件结束位置
// 成功则返回0,否则返回非0

ftell()

long ftell( FILE *fp )
// 获取位置指针当前位置相对于文件首的偏移字节数
// 函数调用成功则返回当前文件的读写位置,否则返回-1

文件出错检测

ferror()

int ferror( FILE *fp )
// 检测对文件指针fp所指向的文件读写操作出现的错误
// 没有出错则返回0,否则返回非0
// 由于每次进行读写操作后,再调用ferror()函数都会产生一个新的值
// 因此在调用读写操作函数后要及时地调用ferror()函数对其经行检测,否则信息会丢失

clearerr()

void clearerr( FILE *fp )
// 复位错误标志,无返回值

perror()

void perror( const char *string)
// 将上一个函数发生错误的原因输出到标准设备
// 参数string所指字符串先被打印,再加上错误原因字符串

strerror()

char *strerror( int errnum)
// 将错误的数值信息转化为易于理解的字符串信息	

猜你喜欢

转载自blog.csdn.net/qq_45279570/article/details/108050221