【问题标题】:C: trouble understanding this files/struct based instructionC:难以理解此文件/基于结构的指令
【发布时间】:2013-12-08 04:57:48
【问题描述】:

我正在尝试创建一个要求用户输入名称的程序(假设每个名称的长度为 30 个字符或更少)。然后它将查找该名称在 1921 年至 2010 年之间的流行度并打印出图表。然后程序会询问用户是否希望进行另一次分析并重复该过程。

该程序需要使用大约 7 个不同的函数,但我无法理解需要使用的 2 个函数。

功能1:

int getRawData(FILE* fp,struct NameRecord records[],int currSize);`

函数被传递一个指向已经打开的文件的指针 阅读。此文件中的每一行将采用以下形式(名称为 在文件中完全大写):

年份、姓名、频​​率

该函数还传递了一个 NameRecord 结构(记录)的数组 以及该数组中当前的记录数(currSize)。这 函数会将文件中的数据读取到数组中,并将其放置在 数组的末尾(文件中的第一条记录将被放入 数组 [currSize])。函数将返回记录的总数 读入文件后的数组。

  struct NameRecord{
          char name[31];
          int year;
          int frequency;
        }

现在我不确定这是否意味着我需要在从文件接收记录的函数中创建一个新数组,或者它是否完全是其他东西并且我没有正确阅读说明。(文件在这个案例是malebabynames.csv)

第二个功能:

void setYearTotals(struct NameRecord records[], int size, int yearRangeTotal[]);

函数传递一个NameRecords(记录)数组和大小 该数组(大小)。它还传递了一个名为 yearRangeTotal 的数组 这将用于存储给定年份的总人口 范围。

yearRangeTotal[0] holds the total population between 1921 to 1925
yearRangeTotal[1] holds the total population between 1926 to 1930
yearRangeTotal[2] holds the total population between 1931 to 1935
...
yearRangeTotal[17] holds the total population between 2006 to 2010

【问题讨论】:

    标签: c arrays file struct record


    【解决方案1】:

    (1) 不,只是填写传递的数组。这与传递 fread 一个 char 数组(或其他任何东西)并要求它读取 N 个项目没有什么不同。检查返回码以了解实际读取了多少。

    (2) 不太清楚。我猜你被要求遍历 NameRecord 数组并根据 NameRecord.year 中的“year”字段增加适当的 yearRangeTotal 元素。

    【讨论】:

      猜你喜欢
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多