📜  ouverture du fichier - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:33:21.208000             🧑  作者: Mango

Ouverture du Fichier - C 编程语言

简介

C编程语言提供了对文件的访问和处理。文件是一组相关数据的集合,可以在程序的执行过程中读取和写入文件,以便进行数据的持久化或传输。

在C中,通过使用标准库函数来操作文件。一旦打开了文件,可以对文件进行读取、写入、定位等操作。最后,必须关闭文件并释放资源。

本文将介绍如何在C中打开、读取、写入和关闭文件。

打开文件

要打开文件,必须使用C标准库中的 fopen() 函数。该函数有两个参数:文件路径和打开模式。

FILE *fopen(const char *filename, const char *mode);

第一个参数是一个字符串,表示要打开的文件的路径。第二个参数是一个表示打开模式的字符串。在打开模式中,应使用以下标志之一:

  • "r":只读模式。打开已有的文件,如果文件不存在则打开失败。
  • "w":只写模式。创建一个空的文件,或截断已有的文件,如果文件不存在则创建文件。
  • "a":追加模式。在文件末尾写入,如果文件不存在则创建文件。
  • "r+":读写模式。打开已有的文件,并允许对文件进行读取和写入,如果文件不存在则打开失败。
  • "w+":读写模式。创建一个空的文件,或截断已有的文件,允许对文件进行读取和写入,如果文件不存在则创建文件。
  • "a+":读写模式。在文件末尾写入,允许对文件进行读取和写入,如果文件不存在则创建文件。

打开文件后, fopen() 函数将返回一个指向 FILE 类型的指针。如果无法打开文件,则返回 NULL

FILE *file_pointer = fopen("file.txt", "r");
if (file_pointer == NULL) {
    perror("Error opening file");
    return EXIT_FAILURE;
}
读取文件

要从文件中读取数据,可以使用C标准库中的 fscanf() 函数或 fgets() 函数,这两个函数都以 *FILE 类型指针作为参数。

int fscanf(FILE *stream, const char *format, ...);
char *fgets(char *str, int size, FILE *stream);

fscanf() 函数根据指定格式从文件中读取输入并返回读取的项数。fgets() 函数读取指定长度的字符并将其存储到给定的字符数组中。如果函数成功读取了数据,则返回非 NULL 值,否则返回 NULL。

// Using fscanf()
int number;
fscanf(file_pointer, "%d", &number);

// Using fgets()
char buffer[255];
fgets(buffer, 255, file_pointer);
写入文件

要将数据写入文件,可以使用C标准库中的 fprintf() 函数或 fputs() 函数,这两个函数都以 *FILE 类型指针作为参数。

int fprintf(FILE *stream, const char *format, ...);
int fputs(const char *str, FILE *stream);

fprintf() 函数根据指定格式将输出写入文件。fputs() 函数将字符串写入文件。如果函数成功写入数据,则返回非负整数,否则返回负整数。

// Using fprintf()
int number = 42;
fprintf(file_pointer, "The answer is %d\n", number);

// Using fputs()
char string[] = "Hello, world!";
fputs(string, file_pointer);
定位到文件中的特定位置

可以使用C标准库中的 fseek() 函数在文件中定位特定的位置。

int fseek(FILE *stream, long offset, int whence);

第一个参数是一个指向文件的指针,第二个参数是要seek的偏移量(以byte为单位),第三个参数指定从何处开始seek。

  • SEEK_SET:文件开头
  • SEEK_CUR:当前位置
  • SEEK_END:文件结尾
fseek(file_pointer, -10L, SEEK_END);
关闭文件

完成对文件的读取或写入后,必须关闭文件以释放资源。可以使用C标准库中的 fclose() 函数。

int fclose(FILE *stream);

关闭文件后,指向该文件的指针将变为无效指针。

fclose(file_pointer);
结论

本文介绍了如何在C中打开、读取、写入和关闭文件。了解文件操作是C编程中很基础的技能,希望这篇文章能对您有所帮助。