文件操作概述
- 文件指针:在C语言中,所有文件操作都是通过文件指针进行的。
FILE *
类型表示文件指针。 - 文件模式:打开文件时,可以指定不同的模式,如
"r"
(只读)、"w"
(只写,会清除原有内容)、"a"
(追加)、"r+"
(读写)、"w+"
(读写,清除原有内容)、"a+"
(读写,追加)等。
打开文件
关闭文件
- 函数:
fclose(FILE *stream)
- 示例:
fclose(fp);
读取文件
- 逐字符读取:
getc(FILE *stream)
或getchar()
- 逐行读取:
fgets(char *s, int n, FILE *stream)
- 格式化读取:
fscanf(FILE *stream, const char *format, ...)
写入文件
- 逐字符写入:
putc(int c, FILE *stream)
或putchar(int c)
- 逐行写入:
fprintf(FILE *stream, const char *format, ...)
- 格式化写入:
fprintf(FILE *stream, const char *format, ...)
其他重要函数
- 查找当前位置:
ftell(FILE *stream)
- 设置当前位置:
fseek(FILE *stream, long offset, int whence)
- 错误检测:
feof(FILE *stream)
检查是否到达文件末尾;ferror(FILE *stream)
检查是否有错误发生。
示例代码
#include <stdio.h>
int main() {
FILE *fp;
fp = fopen("example.txt", "r");
if (fp == NULL) {
printf("Failed to open file\n");
return 1;
}
char ch;
while ((ch = getc(fp)) != EOF) {
putchar(ch); // 输出到标准输出
}
fclose(fp);
return 0;
}
注意事项
- 总是检查文件操作的返回值,确保操作成功。
- 在完成文件操作后,及时关闭文件,释放资源。
- 处理大文件时,考虑内存限制,避免一次性读取整个文件。