📜  在 c 编程中写入文件 (1)

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

在 C 编程中写入文件

在 C 语言中,我们可以使用文件流(file stream)的概念来进行读写文件的操作。在本文中,我们将介绍如何在 C 编程中写入文件。

打开文件

在写入文件之前,我们需要先打开文件。打开文件可以使用 fopen() 函数,该函数定义如下:

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

其中,filename 参数为要打开的文件名,mode 参数为文件打开模式。文件打开模式有以下几种:

  • r:只读模式。打开文件后只能读取数据,不能写入数据。如果文件不存在,fopen() 函数将返回 NULL
  • w:写入模式。打开文件后只能写入数据,不能读取数据。如果文件不存在,将创建该文件。如果文件已经存在,将清空该文件的内容。
  • a:追加模式。打开文件后只能写入数据,不能读取数据。如果文件不存在,将创建该文件。如果文件已经存在,将在文件末尾追加数据。
  • r+:读写模式。打开文件后既可以读取数据,也可以写入数据。如果文件不存在,fopen() 函数将返回 NULL
  • w+:读写模式。打开文件后既可以读取数据,也可以写入数据。如果文件不存在,将创建该文件。如果文件已经存在,将清空该文件的内容。
  • a+:读写模式。打开文件后既可以读取数据,也可以写入数据。如果文件不存在,将创建该文件。如果文件已经存在,将在文件末尾追加数据。

例如,要使用写入模式打开一个名为 data.txt 的文本文件,可以使用以下代码:

FILE *fp = fopen("data.txt", "w");
if (fp == NULL) {
    // 文件打开失败,进行错误处理
    // ...
}
// 文件打开成功,可以进行写入操作
// ...
写入数据

打开文件之后,就可以进行写入操作了。可以使用 fprintf() 函数向文件中写入数据。该函数定义如下:

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

其中,stream 参数为要写入的文件指针,format 参数为格式化输出的字符串,其余的参数为要写入的数据。例如,我们要向文件中写入一个整数和一个字符串,可以使用以下代码:

int num = 1234;
char str[] = "hello, file!";
fprintf(fp, "%d %s\n", num, str);

该代码将向文件中写入一个整数 1234 和一个字符串 "hello, file!",并在结尾添加一个换行符。

关闭文件

在写入操作完成后,必须通过 fclose() 函数将文件关闭,以释放资源并保存数据。该函数定义如下:

int fclose(FILE *stream);

其中,stream 参数为要关闭的文件指针。例如,关闭在前面打开的文件可以使用以下代码:

fclose(fp);
示例代码

下面是一个完整的示例程序,可以将用户输入的字符串写入 output.txt 文件中:

#include <stdio.h>

int main() {
    // 打开文件
    FILE *fp = fopen("output.txt", "w");
    if (fp == NULL) {
        printf("File open failed.\n");
        return 1;
    }

    // 写入数据
    char str[100];
    printf("Input a string: ");
    fgets(str, 100, stdin);
    fprintf(fp, "%s", str);

    // 关闭文件
    fclose(fp);

    return 0;
}
参考文献