36 文件操作之文件的读取与写入

在上一篇中,我们讨论了如何在 C 语言中打开和关闭文件。掌握文件的打开与关闭是进行文件操作的基础,而本篇将深入探讨文件的读取与写入操作。这些操作是文件处理的核心,能够让我们与文件数据进行交互。以下将介绍如何在 C 语言中进行文件的读取与写入,并通过示例代码帮助理解。

文件的写入操作

使用 fprintf 写入文本文件

fprintf 函数可以让我们向文本文件中写入格式化的数据。下面是一个简单的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#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 是一个简化的写入函数,适用于不需要格式化的字符串写入情境:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#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" 模式使得文件以追加的方式打开,每次运行程序都会在文件末尾添加新内容。

文件的读取操作

文件读取操作可以使用多个函数,其中 fscanffgets 是最常用的。

使用 fscanf 读取文本文件

fscanf 是一个格式化输入函数,可以从文本文件读取数据。以下是一个示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#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 函数也可以用来读取一行文本,适合于逐行读取文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#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 语言中如何进行文件的读取与写入操作,包括使用 fprintffputsfscanffgets 函数的基本用法。这些操作使得我们能够方便地与文件进行数据交互。在实际使用中,正确处理文件打开和关闭、检查文件是否成功读取或写入是非常重要的。

下一篇将讨论文件操作中的注意事项,确保我们在进行文件操作时能够避免常见错误,提高代码的健壮性。

36 文件操作之文件的读取与写入

https://zglg.work/c-language-zero/36/

作者

AI免费学习网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论