C 语言中的文件处理
在 C 语言中,您可以通过声明类型为 FILE
的指针,并使用 fopen()
函数来创建、打开、读取和写入文件:
FILE *fptr;
fptr = fopen(filename, mode);
FILE
基本上是一个数据类型,我们需要创建一个指针变量来使用它 (fptr
)。现在,这行代码并不重要。它只是在处理文件时需要的东西。
要实际打开文件,请使用 fopen()
函数,它接受两个参数:
参数 | 描述 |
---|---|
filename | 要打开的实际文件的名称,例如 filename.txt |
mode | 一个表示您想对文件做什么(读取、写入或追加)的单个字符: |
w | 写入文件 |
a | 将新数据追加到文件 |
r | 从文件中读取 |
创建文件
要创建文件,可以在 fopen()
函数中使用 w 模式。
w 模式用于写入文件。但是,如果文件不存在,它将为您创建一个文件:
代码语言:c复制FILE *fptr;
// 创建一个文件
fptr = fopen("filename.txt", "w");
// 关闭文件
fclose(fptr);
注意:如果未指定其他信息,文件将与您的其他 C 文件位于同一目录中。
在我们的电脑上,它看起来像这样:
运行示例 »
提示:如果您想在特定文件夹中创建文件,只需提供绝对路径:
代码语言:c复制fptr = fopen("C:directorynamefilename.txt", "w");
关闭文件
您是否在上面的示例中注意到了 fclose()
函数
当我们完成后,它将关闭文件
它被认为是良好的实践,因为它可以确保:
- 更改已正确保存
- 其他程序可以使用该文件(如果您愿意)
- 清理不必要的内存空间
C 语言中的文件写入
w 模式表示文件已打开用于写入。要将内容插入其中,可以使用 fprintf()
函数,并添加指针变量 (我们示例中的 fptr
) 和一些文本:
FILE *fptr;
// 以写入模式打开文件
fptr = fopen("filename.txt", "w");
// 将一些文本写入文件
fprintf(fptr, "Some text");
// 关闭文件
fclose(fptr);
注意:如果您写入一个已经存在的文件,则旧内容将被删除,并插入新内容。这一点很重要,因为您可能会意外擦除现有内容。
例如:
代码语言:c复制fprintf(fptr, "Hello World!");
因此,当我们在计算机上打开文件时,它显示 “Hello World!”
而不是 “Some text”
将内容追加到文件
如果您想在不删除旧内容的情况下将内容添加到文件,可以使用 a 模式。
a 模式将内容追加到文件末尾:
代码语言:c复制FILE *fptr;
// 以追加模式打开文件
fptr = fopen("filename.txt", "a");
// 将一些文本追加到文件
fprintf(fptr, "nHi everybody!");
// 关闭文件
fclose(fptr);
因此,当我们在计算机上打开文件时,它看起来像这样:
代码语言:c复制Some text
Hi everybody!
注意:当使用 a 模式时,fprintf()
函数不会添加新行。如果您希望在追加的内容之前添加新行,则需要在 fprintf()
函数中手动添加它,如下所示:
fprintf(fptr, "n%s", "Hi everybody!");
这将在追加文本之前添加一个新行。