【问题标题】:Read File that you don't know the lenght of读取不知道长度的文件
【发布时间】:2022-01-07 21:37:56
【问题描述】:

我编写了一个程序来读取整数并判断它是否更大。我已经用一个数组完成了它并用一些数字对其进行了初始化(作为程序是否有效的测试)。现在我必须从一个包含很多整数的文件中读取它,但我不知道文件的长度。如果不知道长度,如何确定数组的大小?

【问题讨论】:

  • 如果这是Advent of Code,我的是2000行。
  • 您可以提前查看文件,或者故意过度分配,例如为 50000 腾出空间。
  • 或者您可以只记住循环中的最后一个数字,而不是读取并存储整个数组 - 您只需将当前数字与最后一个数字进行比较,因此您只需存储那个数字最后一个数字。
  • 您不需要数组来确定最大数。首先编写一个程序,从文件中读取 one 整数,然后循环直到 eof。如果它太慢,那么你会考虑缓冲,但当你使用 fopen() 时你不太需要。

标签: c c99


【解决方案1】:

您可以即时执行(一次读取和处理一行 -> 一次一个数字),或者您需要在读取文件时动态分配内存,如下所述:Dynamically expanding array using realloc

【讨论】:

  • 使用 malloc() thx
【解决方案2】:

你需要使用数组吗?我认为使用列表是您最好的选择。根据您使用的语言,您可以使用 myList.add(newElement)myList.append(newElement) 之类的内容。

【讨论】:

  • 从未使用过列表,所以我真的做不到
猜你喜欢
  • 2017-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-29
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
相关资源
最近更新 更多