33 文件操作之文件的读写操作

在上一篇文章中,我们探讨了如何打开与关闭文件。在本篇中,我们将深入学习如何在 C 语言中进行文件的读写操作。这些操作将使我们能够处理和存储大量的数据,从而使程序更加灵活与实用。

文件的读写操作

在 C 语言中,文件的读写操作主要通过标准库中的函数来实现。这些函数允许我们将数据从内存写入文件,或者从文件中读取数据到内存中。以下是一些常用的文件读写函数:

  • fgetc()
  • fgets()
  • fputs()
  • fprintf()
  • fread()
  • fwrite()

在进行文件读写操作之前,我们需要确保文件已成功打开,并且操作完成后要及时关闭文件。

一、文本文件的读写

1. 写入文本文件

我们可以使用 fprintf()fputs() 函数向文本文件中写入数据。下面是一个简单的例子,演示如何创建文件并将一些文本写入其中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>

int main() {
FILE *file;
file = fopen("example.txt", "w"); // 以写入模式打开文件

if (file == NULL) {
printf("Error opening file!\n");
return 1;
}

fprintf(file, "Hello, World!\n"); // 写入字符串
fputs("This is a file operation example.\n", file); // 使用 fputs 写入

fclose(file); // 关闭文件
return 0;
}

在这个例子中,我们首先以写入模式("w")打开文件 example.txt。然后使用 fprintf()fputs() 函数向文件中写入了两行文本。最后,通过 fclose() 函数关闭文件。

2. 读取文本文件

读取文本文件可以使用 fgets()fgetc() 函数。以下是读取文件内容的示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>

int main() {
FILE *file;
char buffer[100];

file = fopen("example.txt", "r"); // 以读取模式打开文件

if (file == NULL) {
printf("Error opening file!\n");
return 1;
}

// 使用 fgets 逐行读取
while (fgets(buffer, sizeof(buffer), file) != NULL) {
printf("%s", buffer); // 打印读取的行
}

fclose(file); // 关闭文件
return 0;
}

在这个例子中,我们以读取模式("r")打开 example.txt 文件,并使用 fgets() 逐行读取内容。最后,将读取到的内容打印到屏幕上。

二、二进制文件的读写

C 语言也支持以二进制格式读取和写入文件。使用 fread()fwrite() 函数进行二进制文件的操作。下面是一个示例:

1. 写入二进制文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>

struct Data {
int id;
float value;
};

int main() {
FILE *file;
struct Data data = {1, 45.5};

file = fopen("data.bin", "wb"); // 以二进制写入模式打开文件

if (file == NULL) {
printf("Error opening file!\n");
return 1;
}

fwrite(&data, sizeof(struct Data), 1, file); // 写入结构体数据

fclose(file); // 关闭文件
return 0;
}

在这个例子中,我们定义了一个 struct Data,并将它的实例写入到了名为 data.bin 的二进制文件中。

2. 读取二进制文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>

struct Data {
int id;
float value;
};

int main() {
FILE *file;
struct Data data;

file = fopen("data.bin", "rb"); // 以二进制读取模式打开文件

if (file == NULL) {
printf("Error opening file!\n");
return 1;
}

fread(&data, sizeof(struct Data), 1, file); // 读取结构体数据

printf("ID: %d, Value: %.2f\n", data.id, data.value); // 打印读取的数据

fclose(file); // 关闭文件
return 0;
}

在这个例子中,我们从 data.bin 文件中读取结构体数据,并将其打印到屏幕上。

总结

在本篇中,我们学习了如何在 C 语言中进行文件的读写操作,包括对文本文件和二进制文件的处理。文件的读写操作是 C 语言中一个重要的组成部分,能够帮助我们持久化数据,尤其在处理大规模数据时显得尤为重要。

在下一篇文章中,我们将通过一个简单计算器的项目来加深对上述知识的理解并应用。通过这个项目,我们将整合之前的文件操作知识,同时也将使我们的编程能力有更进一步的提升。

33 文件操作之文件的读写操作

https://zglg.work/cplusplus-zero/33/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论