跳到主要内容

C 语言文件基础

在C语言中,文件操作是处理数据存储和读取的重要部分。通过文件操作,程序可以将数据保存到文件中,或者从文件中读取数据。本文将详细介绍C语言中文件操作的基础知识,包括文件的打开、读写、关闭等操作。

文件操作的基本概念

在C语言中,文件操作主要通过标准库函数来实现。文件操作的基本步骤包括:

  1. 打开文件:使用 fopen 函数打开文件。
  2. 读写文件:使用 freadfwritefscanffprintf 等函数进行文件的读写操作。
  3. 关闭文件:使用 fclose 函数关闭文件。

打开文件

在C语言中,使用 fopen 函数来打开文件。fopen 函数的原型如下:

c
FILE *fopen(const char *filename, const char *mode);
  • filename:要打开的文件名。
  • mode:打开文件的模式,常见的模式有:
    • "r":只读模式,文件必须存在。
    • "w":写入模式,如果文件存在则清空文件,如果文件不存在则创建文件。
    • "a":追加模式,如果文件存在则在文件末尾追加数据,如果文件不存在则创建文件。
    • "r+":读写模式,文件必须存在。
    • "w+":读写模式,如果文件存在则清空文件,如果文件不存在则创建文件。
    • "a+":读写模式,如果文件存在则在文件末尾追加数据,如果文件不存在则创建文件。

示例:打开文件

c
#include <stdio.h>

int main() {
FILE *file = fopen("example.txt", "w");
if (file == NULL) {
printf("文件打开失败\n");
return 1;
}
printf("文件打开成功\n");
fclose(file);
return 0;
}

输出:

文件打开成功

读写文件

写入文件

使用 fprintf 函数可以将数据写入文件。fprintf 函数的原型如下:

c
int fprintf(FILE *stream, const char *format, ...);
  • stream:文件指针。
  • format:格式化字符串,与 printf 函数类似。

示例:写入文件

c
#include <stdio.h>

int main() {
FILE *file = fopen("example.txt", "w");
if (file == NULL) {
printf("文件打开失败\n");
return 1;
}
fprintf(file, "Hello, World!\n");
fclose(file);
return 0;
}

文件内容:

Hello, World!

读取文件

使用 fscanf 函数可以从文件中读取数据。fscanf 函数的原型如下:

c
int fscanf(FILE *stream, const char *format, ...);
  • stream:文件指针。
  • format:格式化字符串,与 scanf 函数类似。

示例:读取文件

c
#include <stdio.h>

int main() {
FILE *file = fopen("example.txt", "r");
if (file == NULL) {
printf("文件打开失败\n");
return 1;
}
char buffer[100];
fscanf(file, "%s", buffer);
printf("读取的内容: %s\n", buffer);
fclose(file);
return 0;
}

输出:

读取的内容: Hello,
备注

fscanf 函数在读取字符串时,遇到空格或换行符会停止读取。如果需要读取整行内容,可以使用 fgets 函数。

关闭文件

使用 fclose 函数可以关闭文件。fclose 函数的原型如下:

c
int fclose(FILE *stream);
  • stream:文件指针。

示例:关闭文件

c
#include <stdio.h>

int main() {
FILE *file = fopen("example.txt", "w");
if (file == NULL) {
printf("文件打开失败\n");
return 1;
}
fprintf(file, "Hello, World!\n");
fclose(file);
return 0;
}

实际案例:文件复制

以下是一个简单的文件复制程序,它将一个文件的内容复制到另一个文件中。

c
#include <stdio.h>

int main() {
FILE *sourceFile = fopen("source.txt", "r");
FILE *targetFile = fopen("target.txt", "w");

if (sourceFile == NULL || targetFile == NULL) {
printf("文件打开失败\n");
return 1;
}

char ch;
while ((ch = fgetc(sourceFile)) != EOF) {
fputc(ch, targetFile);
}

fclose(sourceFile);
fclose(targetFile);

printf("文件复制成功\n");
return 0;
}

输出:

文件复制成功

总结

本文介绍了C语言中文件操作的基础知识,包括文件的打开、读写、关闭等操作。通过这些基础操作,程序可以实现数据的存储和读取。文件操作是C语言编程中的重要部分,掌握这些基础知识对于进一步学习文件操作的高级功能非常重要。

附加资源

练习

  1. 编写一个程序,将用户输入的字符串保存到文件中。
  2. 编写一个程序,从文件中读取数据并显示在屏幕上。
  3. 编写一个程序,将一个文件的内容追加到另一个文件的末尾。
提示

在编写文件操作程序时,务必检查文件是否成功打开,以避免程序崩溃或数据丢失。