C语言中文件处理全攻略详解

 更新时间:2024年01月09日 08:20:59   作者:小万哥丶  
这篇文章主要为大家详细介绍了C语言中文件处理的相关知识,包括创建、写入、追加操作解析,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下

C 语言中的文件处理

在 C 语言中,您可以通过声明类型为 FILE 的指针,并使用 fopen() 函数来创建、打开、读取和写入文件:

FILE *fptr;
fptr = fopen(filename, mode);

FILE 基本上是一个数据类型,我们需要创建一个指针变量来使用它 (fptr)。现在,这行代码并不重要。它只是在处理文件时需要的东西。

要实际打开文件,请使用 fopen() 函数,它接受两个参数:

参数描述
filename要打开的实际文件的名称,例如 filename.txt
mode一个表示您想对文件做什么(读取、写入或追加)的单个字符:
w写入文件
a将新数据追加到文件
r从文件中读取

创建文件

要创建文件,可以在 fopen() 函数中使用 w 模式。

w 模式用于写入文件。但是,如果文件不存在,它将为您创建一个文件:

FILE *fptr;

// 创建一个文件
fptr = fopen("filename.txt", "w");

// 关闭文件
fclose(fptr);

注意:如果未指定其他信息,文件将与您的其他 C 文件位于同一目录中。

在我们的电脑上,它看起来像这样:

运行示例 »

提示:如果您想在特定文件夹中创建文件,只需提供绝对路径:

fptr = fopen("C:\directoryname\filename.txt", "w");

关闭文件

您是否在上面的示例中注意到了 fclose() 函数

当我们完成后,它将关闭文件

它被认为是良好的实践,因为它可以确保:

  • 更改已正确保存
  • 其他程序可以使用该文件(如果您愿意)
  • 清理不必要的内存空间

C 语言中的文件写入

w 模式表示文件已打开用于写入。要将内容插入其中,可以使用 fprintf() 函数,并添加指针变量 (我们示例中的 fptr) 和一些文本:

FILE *fptr;

// 以写入模式打开文件
fptr = fopen("filename.txt", "w");

// 将一些文本写入文件
fprintf(fptr, "Some text");

// 关闭文件
fclose(fptr);

注意:如果您写入一个已经存在的文件,则旧内容将被删除,并插入新内容。这一点很重要,因为您可能会意外擦除现有内容。

例如:

fprintf(fptr, "Hello World!");

因此,当我们在计算机上打开文件时,它显示 “Hello World!” 而不是 “Some text”

将内容追加到文件

如果您想在不删除旧内容的情况下将内容添加到文件,可以使用 a 模式。

a 模式将内容追加到文件末尾:

FILE *fptr;

// 以追加模式打开文件
fptr = fopen("filename.txt", "a");

// 将一些文本追加到文件
fprintf(fptr, "\nHi everybody!");

// 关闭文件
fclose(fptr);

因此,当我们在计算机上打开文件时,它看起来像这样:

Some text
Hi everybody!

注意:当使用 a 模式时,fprintf() 函数不会添加新行。如果您希望在追加的内容之前添加新行,则需要在 fprintf() 函数中手动添加它,如下所示:

fprintf(fptr, "\n%s", "Hi everybody!");

到此这篇关于C语言中文件处理全攻略详解的文章就介绍到这了,更多相关C语言文件处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++实现基数排序的方法详解

    C++实现基数排序的方法详解

    本篇文章是对使用C++实现基数排序的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C++ STL入门教程(3) deque双向队列使用方法

    C++ STL入门教程(3) deque双向队列使用方法

    这篇文章主要为大家详细介绍了C++ STL入门教程第三篇,deque双向队列的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • c语言中用字符串数组显示菜单的解决方法

    c语言中用字符串数组显示菜单的解决方法

    本篇文章是对c语言中用字符串数组显示菜单的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C++浅析构造函数的特性

    C++浅析构造函数的特性

    构造函数主要作用在于创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无须手动调用;析构函数主要作用在于对象销毁前系统自动调用,执行一 些清理工作
    2022-07-07
  • 用C语言简单实现扫雷小游戏

    用C语言简单实现扫雷小游戏

    这篇文章主要为大家详细介绍了用C语言简单实现扫雷小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 详解C++图搜索算法之双端队列广搜

    详解C++图搜索算法之双端队列广搜

    这篇文章主要为大家介绍一下C++图搜索算法中的双端队列广搜,文中通过例题详细介绍了双端队列广搜的使用方法,感兴趣的可以了解一下
    2022-06-06
  • 详解C++中常用的四种类型转换方式

    详解C++中常用的四种类型转换方式

    这篇文章主要为大家详细介绍了C++中常用的四种类型转换方式:static_cast<Type>、dynamic_cast<Type>、const_case<Type>和reinterpret_cast,感兴趣的可以了解一下
    2022-08-08
  • C语言实现单链表反转

    C语言实现单链表反转

    这篇文章主要介绍了C语言实现单链表反转,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Qt QMessageBox类使用教程

    Qt QMessageBox类使用教程

    QMessageBox类提供一个模态对话框,用于通知用户或询问用户一个问题并接收答案。这篇文章主要介绍了QMessageBox的一些常用用法,需要的小伙伴快来学习一下
    2021-12-12
  • centos 7 vscode cmake 编译c++工程的教程详解

    centos 7 vscode cmake 编译c++工程的教程详解

    这篇文章给大家介绍了centos 7 使用vscode+cmake配置简单c++项目的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-05-05

最新评论