C语言文件操作

FILE 是一个数据结构,用于访问一个流,每一个流都有一个相应的 FILE 与它关联.

打开一个特定的文件

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

该函数打开一个特定的文件,并把一个流和这个文件相关联. 函数执行成功,返回一个指向 FILE 结构的指针,函数执行失败,返回一个 NULL 指针, erron 会提示问题的性质,执行该函数后非常重要的一步是对函数返回值的检查,确定文件是否打开.

  • name 是文件的路径
  • mode 参数表示文件的打开方式

文件路径有两种模式,绝对路径和相对路径.

  • 绝对路径是从盘符开始到文件位置的完整路径
  • 相对路径以当前文件位置为起始到目标文件位置的路径
    . / 表示当前文件所在目录
    . . / 表示当前文件所在的上一级目录

文件的常用打开方式如下:

文本文件二进制文件
只读“r”“rb”
只写“w”“wb”
追加“a”“ab”

关闭文件

int fclose(FILE *f);

该函数关闭指定的文件,在文件关闭之前刷新缓冲区.如果函数执行成功,返回 0, 否则返回 EOF.

字符读写

int fgetc(FILE *stream);

该函数可以按字符从文件中读取.函数执行成功,返回该字符,否则返回 EOF.

int fputc(int character, FILE *stream);

该函数可以将单个字符写入写入到文件中.

行的读写

char *fgets(char *buffer, int buffer_size, FILE *stream);

该函数可以从文件中读取一行字符串,并将读入的字符串复制到 buffer 中,读取的字符串长度不超过buffer_size - 1.读取的字符串包含换行符.函数执行成功,返回第一个参数;否则返回 NULL.

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

该函数可以向文件中写入字符串.函数执行成功,返回一个非负值;否则返回 EOF.

格式化行的读写

int fscnaf(FILE *stream, const chat *format, ...);

该函数可以从文件中根据 format 字符串给出的格式代码对它们进行转换,函数执行成功,返回读入数据的个数;否则返回 EOF.

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

该函数可以向文件中格式化写入数据,函数执行成功,返回实际写入的数据个数;否则返回一个负值.

二进制读写

size_t fread(void *buffer, size_t size, size_t count, FILE *stream);
size_t fwrite(void *buffer, size_t size, size_t count, FILE *stream);

fread 用于读取二进制数据, fwirte 用于向文件中写入二进制数据. buffer 指向用于保存数据的内存位置的指针, size 是读取每个元素的字节数, count 是元素个数. 函数执行成功,返回实际读或写的数据个数,如果中途遇到文件结尾或错误,返回值会比预期的少.

文件定位

long ftell(FILE *stream);

该函数返回下一个将要读取或写入位置距离文件起始位置的偏移量.

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

该函数将改变下一个将要在文件中读取或写入的位置.在文本文件中第二个参数和第是哪个参数如下表:

fromoffset
SEEK_SET必须是一个从同一个流中以前调用 ftell 的返回值
SEEK_CUR0
SEEK_END0
void rewind(FILE *stream);

该函数将文件读写指针设置回文件的起始位置.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值