在C语言中,文件操作是通过一组标准库函数来实现的,这些函数定义在 <stdio.h>
头文件中。以下是一些基本的文件操作函数及其用法:
- 文件打开(fopen):
FILE *fopen(const char *filename, const char *mode);
filename
是要打开的文件名。mode
是打开文件的方式,例如"r"
(只读)、"w"
(只写,创建新文件或覆盖旧文件)、"a"
(追加,写入文件末尾)等。
示例:
FILE *file = fopen("example.txt", "r");
if (file == NULL) {
printf("Failed to open file\n");
return 1;
}
- 文件关闭(fclose):
int fclose(FILE *stream);
stream
是指向 FILE 对象的指针,该对象标识了要关闭的文件。
示例:
fclose(file);
-
文件读取(fscanf, fgets, fread等):
fscanf
: 从文件读取格式化输入。fgets
: 从文件读取一行。fread
: 从文件读取指定数量的数据项。示例(使用fgets
):
char buffer[100];
if (fgets(buffer, sizeof(buffer), file) != NULL) {
printf("%s", buffer);
}
-
文件写入(fprintf, fputs, fwrite等):
fprintf
: 将格式化数据写入文件。fputs
: 将字符串写入文件。fwrite
: 将指定数量的数据项写入文件。示例(使用fprintf
):
fprintf(file, "Hello, World!\n");
-
文件定位(fseek, ftell, rewind等):
fseek
: 设置文件位置指示器的位置。ftell
: 返回文件位置指示器的当前位置。rewind
: 将文件位置指示器设置回文件的开头。示例(使用fseek
和ftell
):
long position = ftell(file); // 获取当前位置
fseek(file, 10, SEEK_SET); // 移动到文件的第10个字节
- 文件错误处理:
当进行文件操作时,可以使用 ferror
函数来检查是否发生了错误,使用 clearerr
函数来清除错误标志和文件结束标志。
示例:
if (ferror(file)) {
printf("Error occurred during file operation\n");
clearerr(file); // 清除错误标志
}
请注意,上述所有函数在成功时返回非零值(对于 fclose
,成功时返回0),在失败时返回零或EOF(对于文件读取函数)。因此,在使用这些函数时,始终检查其返回值以确保操作成功。