C语言中操作文件常用的函数包括但不限于以下几种:
- 打开和关闭文件
fopen(const char *path, const char *mode):用于打开一个文件,返回一个指向FILE结构体的指针,path是文件路径,mode定义了文件的打开模式(如读、写、追加等)。fclose(FILE *stream):关闭由fopen()打开的文件,并刷新缓冲区中的数据到磁盘。
- 读取和写入数据
fread(void *ptr, size_t size, size_t nmemb, FILE *stream):从文件读取数据到内存,ptr是目标缓冲区的地址,size是每个元素的大小,nmemb是要读取的元素数量,stream是文件指针。fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream):将内存中的数据写入文件,参数含义同上。
- 文件定位
fseek(FILE *stream, long offset, int origin):移动文件内部的位置指针,offset是偏移量,origin定义了偏移的起点(如SEEK_SET、SEEK_CUR、SEEK_END)。
SEEK_SET:偏移量从文件的开头算起。这意味着如果 offset 是 0,那么位置指针会被设置到文件的开头。
SEEK_CUR:偏移量从当前位置算起。如果 offset 是正数,位置指针向前移动;如果是负数,位置指针向后移动;如果是 0,位置指针保持不变。
SEEK_END:偏移量从文件的末尾算起。如果 offset 是 0,那么位置指针会被设置到文件的末尾;如果是负数,位置指针向文件开头方向移动;如果是正数,位置指针会超出文件末尾(这在某些情况下可能是有用的,例如预分配文件空间)。ftell(FILE *stream):获取文件当前的位置指针相对于文件开始的位置,返回当前位置的偏移量。rewind(FILE *stream):将文件位置指针重新定位到文件的开头。
- 其他常用函数
feof(FILE *stream):检测是否已到达文件末尾,如果是则返回非零值。ferror(FILE *stream):检查与流相关的错误状态,如果有错误则返回非零值。clearerr(FILE *stream):清除由ferror()或feof()设置的错误指示和文件结束指示。getc(FILE *stream)和putc(int character, FILE *stream):分别为从文件读取单个字符和向文件写入单个字符的函数。gets(char *s)和puts(const char *s):虽然常用,但不推荐,因为gets容易导致缓冲区溢出,推荐使用更安全的fgets替代。fgets(char *s, int n, FILE *stream):从文件读取一行文本到字符串s中,最多读取n-1个字符。fprintf(FILE *stream, const char *format, ...):格式化输出到文件。fscanf(FILE *stream, const char *format, ...):从文件按格式读取数据。
这些函数都定义在<stdio.h>头文件中,是进行文件输入输出操作的基础。
C语言中fopen()函数支持的文件打开模式(只读、只写、读写)
r:只读打开一个文本文件。如果文件不存在,打开操作失败。w:只写打开一个文本文件。如果文件存在,则会被截断为零长度;如果文件不存在,则会新建。a:追加模式打开一个文本文件。写入的数据会被追加到文件末尾。如果文件不存在,则会新建。r+:读写模式打开一个文本文件。文件必须存在。w+:读写模式打开一个文本文件。如果文件存在,则会被截断为零长度;如果文件不存在,则会新建。a+:读写模式打开一个文本文件。写入的数据会被追加到文件末尾。如果文件不存

最低0.47元/天 解锁文章
659

被折叠的 条评论
为什么被折叠?



