36 文件操作之文件的读取与写入
在上一篇中,我们讨论了如何在 C 语言中打开和关闭文件。掌握文件的打开与关闭是进行文件操作的基础,而本篇将深入探讨文件的读取与写入操作。这些操作是文件处理的核心,能够让我们与文件数据进行交互。以下将介绍如何在 C 语言中进行文件的读取与写入,并通过示例代码帮助理解。
文件的写入操作
使用 fprintf
写入文本文件
fprintf
函数可以让我们向文本文件中写入格式化的数据。下面是一个简单的例子:
#include <stdio.h>
int main() {
FILE *fp;
// 打开文件以写入
fp = fopen("example.txt", "w");
if (fp == NULL) {
perror("打开文件失败");
return -1;
}
// 写入数据
fprintf(fp, "这是一个示例文本。\n");
fprintf(fp, "写入数据的例子。\n");
// 关闭文件
fclose(fp);
return 0;
}
在这个例子中,我们打开了一个名为 example.txt
的文件,并使用 fprintf
向其中写入了几行文本。注意检查 fopen
的返回值,确保文件成功打开。
使用 fputs
写入文本文件
fputs
是一个简化的写入函数,适用于不需要格式化的字符串写入情境:
#include <stdio.h>
int main() {
FILE *fp;
// 打开文件以写入
fp = fopen("example.txt", "a"); // 使用 "a" 模式追加内容
if (fp == NULL) {
perror("打开文件失败");
return -1;
}
// 写入数据
fputs("这是追加的内容。\n", fp);
// 关闭文件
fclose(fp);
return 0;
}
这里我们使用 "a"
模式使得文件以追加的方式打开,每次运行程序都会在文件末尾添加新内容。
文件的读取操作
文件读取操作可以使用多个函数,其中 fscanf
和 fgets
是最常用的。
使用 fscanf
读取文本文件
fscanf
是一个格式化输入函数,可以从文本文件读取数据。以下是一个示例:
#include <stdio.h>
int main() {
FILE *fp;
char str[100];
// 打开文件以读取
fp = fopen("example.txt", "r");
if (fp == NULL) {
perror("打开文件失败");
return -1;
}
// 读取数据
while (fscanf(fp, "%99[^\n]\n", str) != EOF) {
printf("读取到: %s\n", str);
}
// 关闭文件
fclose(fp);
return 0;
}
在这个例子中,我们逐行读取 example.txt
中的数据,使用 %99[^\n]
格式指定最多读取 99 个字符,直到遇到换行符。
使用 fgets
读取文本文件
fgets
函数也可以用来读取一行文本,适合于逐行读取文件:
#include <stdio.h>
int main() {
FILE *fp;
char buffer[100];
// 打开文件以读取
fp = fopen("example.txt", "r");
if (fp == NULL) {
perror("打开文件失败");
return -1;
}
// 读取数据
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
printf("读取到: %s", buffer);
}
// 关闭文件
fclose(fp);
return 0;
}
这里,fgets
从文件中读取一行文字到 buffer
中,直到遇到换行符或达到指定的字符数。
总结
本篇介绍了 C 语言中如何进行文件的读取与写入操作,包括使用 fprintf
、fputs
、fscanf
和 fgets
函数的基本用法。这些操作使得我们能够方便地与文件进行数据交互。在实际使用中,正确处理文件打开和关闭、检查文件是否成功读取或写入是非常重要的。
下一篇将讨论文件操作中的注意事项,确保我们在进行文件操作时能够避免常见错误,提高代码的健壮性。