1. 文件操作基本概念:
文件和文件流的概念:
在C语言中,文件被视为数据的集合,存储在磁盘或其他存储设备上。文件流是程序和文件之间的抽象概念,通过文件流,程序能够读取或写入文件中的数据。
文件指针:
文件指针是用来跟踪文件中位置的工具。它指向文件中当前正在进行读取或写入的位置。C语言中,使用FILE类型的指针来表示文件指针。
2. 文件的打开和关闭:
fopen() 和 fclose() 函数:
1.fopen() 函数用于打开文件,它需要文件路径和打开模式作为参数,并返回一个指向文件的指针。
2.fclose() 函数用于关闭文件,释放与文件相关的资源。示例代码:
#include <stdio.h>
int main() {
FILE *file_ptr;
// 打开文件
file_ptr = fopen("example.txt", "w"); // "w" 表示以写入模式打开文件
if (file_ptr == NULL) {
printf("无法打开文件\n");
return 1;
}
// 写入数据到文件
fprintf(file_ptr, "这是文件写入的示例内容\n");
// 关闭文件
fclose(file_ptr);
return 0;
}
3. 读取和写入文件:
fread() 和 fwrite() 函数:
3.fread() 用于从文件中读取数据。
4.fwrite() 用于向文件中写入数据。
示例代码:
#include <stdio.h>
int main() {
FILE *file_ptr;
char data[100];
// 打开文件
file_ptr = fopen("example.txt", "r"); // "r" 表示以读取模式打开文件
if (file_ptr == NULL) {
printf("无法打开文件\n");
return 1;
}
// 从文件中读取数据
while (fgets(data, 100, file_ptr) != NULL) {
printf("%s", data);
}
// 关闭文件
fclose(file_ptr);
return 0;
}
4. 文件指针的控制:
fseek() 和 ftell() 函数:
5.fseek() 用于设置文件指针的位置。
6.ftell() 用于获取当前文件指针的位置。
rewind() 函数:
7.rewind() 用于将文件指针重置到文件的开头。
示例代码:
#include <stdio.h>
int main() {
FILE *file_ptr;
char data[100];
// 打开文件
file_ptr = fopen("example.txt", "r"); // "r" 表示以读取模式打开文件
if (file_ptr == NULL) {
printf("无法打开文件\n");
return 1;
}
// 从文件中读取数据
fseek(file_ptr, 0, SEEK_END); // 将文件指针移到文件末尾
long file_size = ftell(file_ptr); // 获取文件大小
fseek(file_ptr, 0, SEEK_SET); // 将文件指针移回文件开头
// 读取数据并显示文件内容
while (fgets(data, file_size, file_ptr) != NULL) {
printf("%s", data);
}
// 关闭文件
fclose(file_ptr);
return 0;
}
5. 错误处理和边界情况:
检查文件打开是否成功:
8.在打开文件后,使用条件语句检查文件指针是否为 NULL,以确保文件成功打开。
处理文件结束标志:
9.在读取文件时,使用循环结构和适当的条件语句检查文件结束标志,以防止读取超过文件大小。