38 C语言文件的读取与写入

38 C语言文件的读取与写入

1. 简介

在C语言中,文件操作是处理数据持久化的重要部分。通过文件读取和写入,程序可以保存数据并在需要时重新加载它们。

2. 文件操作的基本概念

  • 文件:存储数据的地方,可以是文本文件或二进制文件。
  • 文件指针:用于在文件中定位的指针。

3. 文件操作的标准库函数

C语言通过标准库提供了一系列函数来进行文件的读取和写入。

3.1 文件打开与关闭

  • fopen(): 打开文件并返回文件指针。
  • fclose(): 关闭已打开的文件。

示例代码:

1
2
3
4
5
6
FILE *file;
file = fopen("example.txt", "w"); // 以写入模式打开文件
if (file == NULL) {
// 错误处理
}
fclose(file); // 关闭文件

3.2 文件模式

  • "r": 只读模式,文件必须存在。
  • "w": 只写模式,若文件存在则会被清空,不存在则创建。
  • "a": 追加模式,数据会被写入文件末尾。
  • "r+": 读写模式,文件必须存在。
  • "w+": 读写模式,若文件存在则会被清空,不存在则创建。
  • "a+": 读追加模式,数据会被写入文件末尾,允许读操作。

3.3 写入文件

  • fprintf(): 按格式写入数据。
  • fputs(): 写入字符串,不带格式。
  • fwrite(): 写入二进制数据。

示例代码:

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

int main() {
FILE *file = fopen("example.txt", "w");
if (file == NULL) {
perror("Error opening file");
return 1;
}

fprintf(file, "Hello, World!\n"); // 格式化写入
fputs("This is a test.\n", file); // 写入字符串

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

3.4 读取文件

  • fscanf(): 从文件中按格式读取数据。
  • fgets(): 读取一行字符串。
  • fread(): 读取二进制数据。

示例代码:

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

int main() {
FILE *file = fopen("example.txt", "r");
if (file == NULL) {
perror("Error opening file");
return 1;
}

char buffer[100];
while (fgets(buffer, sizeof(buffer), file) != NULL) {
printf("%s", buffer); // 打印读取的行
}

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

3.5 错误处理

文件操作可能会出错,应使用 perror()ferror() 检查错误。

示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
FILE *file = fopen("example.txt", "r");
if (file == NULL) {
perror("Error opening file");
// 处理错误
return 1;
}

// 进行文件操作
if (ferror(file)) {
perror("Error reading from file");
}

fclose(file);

4. 操作总结

  • 使用 fopen() 打开文件,进行读写操作后使用 fclose() 关闭文件。
  • 根据需求选择合适的文件模式。
  • 使用相应的读取和写入函数:fprintf()fscanf()fgets()fread() 等。
  • 处理错误以确保程序的健壮性。

5. 练习

  1. 创建一个程序,将用户输入的若干行文本写入一个文件中。
  2. 创建一个程序,读取一个文件并统计其中的行数和单词数。

通过这些基本的文件操作,C语言小白可以开始简单的文件处理工作,并为更复杂的应用程序打下基础。

38 C语言文件的读取与写入

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

作者

AI教程网

发布于

2024-08-08

更新于

2024-08-10

许可协议