【问题标题】:fopen for each function or storing file in list or array in C?为每个函数打开 fopen 或将文件存储在 C 中的列表或数组中?
【发布时间】:2014-09-12 03:54:41
【问题描述】:

假设我正在编写一个包含 3-5 个函数的程序,所有这些函数都处理相同的输入文件,该文件由 25-50 行字符串组成,每个字符串由 100 个字符组成。我想将此文件中的字符串用于各种字符串操作,例如删除元音和辅音、替换字符或打印出整个文件。

是否更喜欢将这些行存储在例如数组或链表中?或者我应该只为每个函数使用 fopen 和 fgets 吗?存储仅在运行时。

一般来说,在多个函数中处理同一个文件时,处理输入文件的最佳方式是什么?

【问题讨论】:

  • 这取决于您是要永久存储还是直到程序终止。你的问题不够清楚
  • 要么声明一个 globalFILE *fp(不推荐),要么在 main() 中声明流并将流作为参数传递给您的函数以提供对文件。例如:function (FILE *f, ...).

标签: c arrays fopen fgets


【解决方案1】:

如果没有其他程序或人在您自己的程序之外修改文件,将所有数据加载到内存中并在那里使用/修改它会更有效,无论何时将其写回文件你想要它更新。

可能是在退出程序之前,也可能是在每次更改之后,也可能是在用户点击File/Save时。

在程序运行期间必须多次打开、读取、写入和关闭文件效率不高,除非您在运行期间需要文件的实际信息。

【讨论】:

    猜你喜欢
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    相关资源
    最近更新 更多