【问题标题】:How can I correctly import this structure from a file? [duplicate]如何从文件中正确导入此结构? [复制]
【发布时间】:2017-12-03 12:03:07
【问题描述】:

我目前正在尝试编写一个程序来解决 C 中的背包问题。作为本次作业的一部分,我们被要求打开一个文本文件,其内容如下,读取对象、权重、值和文件中每个对象的成本。我只是不知道如何导入这些信息并按照结构以正确的顺序存储它。 下面是呈现文本文件的格式示例 objects.txt:

块引用

价值权重成本

7 1 4

6 5 10

6 11 15

5 4 8

4 2 20

3 6 8

2 4 9

2 10 3

1 6 7

【问题讨论】:

  • 很抱歉,我们无法完成您的任务。请尝试自己做,如果您遇到任何问题,请提出问题。
  • 这不是我的任务,如果你阅读了整个问题,你会发现这是我无法弄清楚的唯一元素。
  • 我建议将您的代码与提出的问题一起添加。
  • 你试过gxxgle this吗?

标签: c


【解决方案1】:

是的,今天是星期天,你的作业可能明天就要交了……我们不做作业,但我们可以给出一些指导。

要从文本文件中读取数据,请使用FILE *fp=fopen(... 打开它。打开文件后(并检查它是否已成功打开),您可以通过两种方式读取行:

  • 通过调用 fscanf(fp, "%d %d %d ",... 并检查您想要读取的参数数量(如果没有,您可能处于文件末尾),或者

  • 通过调用fgets 将一行读入缓冲区,然后处理缓冲区,您可以使用sscanf,就像fscanf 一样。

注意:您在循环中执行此操作,直到 fscanffgets 无法再读取任何内容。您不要循环while (!feof(fp)),因为feof 报告在读取失败后没有更多内容可读取。

您将数据读入结构的成员中。我假设您有一个结构数组,并且我假设该数组足够大以容纳所有数据(动态分配将在您的课程中稍后进行)。

最后你用fclose关闭文件。

【讨论】:

  • 这会根据重量、价格、价值等存储在结构中吗?我知道如何阅读它只是我不知道在阅读文件时如何区分它们的子类别之间的数字
  • 不,不会,数据排序由您决定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多