13.文件操作
约 617 字大约 2 分钟
C 文件读写
FILE *fopen( const char *filename, const char *mode );
模式
r 打开一个已有的文本文件,允许读取文件
w 打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会从文件的开头写入内容。如果文件存在,则该会被截断为零长度,重新写入。
a 打开一个文本文件,以追加模式写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会在已有的文件内容中追加内容。
r+ 打开一个文本文件,允许读写文件。
w+ 打开一个文本文件,允许读写文件。如果文件已存在,则文件会被截断为零长度,如果文件不存在,则会创建一个新文件。
a+ 打开一个文本文件,允许读写文件。如果文件不存在,则会创建一个新文件。读取会从文件的开头开始,写入则只能是追加模式。
#include <stdio.h>
int main() {
FILE *file;
// 缓冲区大小可以根据需要调整
char buffer[256];
// 打开文件以进行读取
file = fopen("example.txt", "r");
if (file == NULL) {
perror("Error opening file");
return 1;
}
// 逐行读取文件内容
while (fgets(buffer, sizeof(buffer), file) != NULL) {
printf("%s", buffer);
}
// 关闭文件
fclose(file);
return 0;
}
标准库文件操作函数
fopen: 打开文件
FILE *fopen(const char *filename, const char *mode);
fclose: 关闭文件
int fclose(FILE *stream);
fread: 从文件中读取数据
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
fwrite: 向文件中写入数据
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
fgets: 从文件中读取一行文本
char *fgets(char *str, int n, FILE *stream);
fputs: 向文件中写入一行文本
int fputs(const char *str, FILE *stream);
fprintf: 格式化输出到文件
int fprintf(FILE *stream, const char *format, ...);
fscanf: 从文件中格式化输入
int fscanf(FILE *stream, const char *format, ...);
fseek: 移动文件指针
int fseek(FILE *stream, long offset, int whence);
ftell: 获取文件指针位置
long ftell(FILE *stream);
rewind: 重置文件指针到文件开始位置
void rewind(FILE *stream);
feof: 检查是否到达文件末尾
int feof(FILE *stream);
ferror: 检查文件流是否发生错误
int ferror(FILE *stream);
clearerr: 清除文件流的错误标志
void clearerr(FILE *stream);