📅  最后修改于: 2023-12-03 15:23:06.979000             🧑  作者: Mango
在 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;
}