Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C:无法理解此基于文件/结构的指令_C_Arrays_File_Struct_Record - Fatal编程技术网

C:无法理解此基于文件/结构的指令

C:无法理解此基于文件/结构的指令,c,arrays,file,struct,record,C,Arrays,File,Struct,Record,我正在尝试创建一个程序,要求用户输入一个名称(假设每个名称的长度不超过30个字符)。然后,它会找出这个名字在1921年到2010年间的流行程度,并打印出图表。然后,程序将询问用户是否希望进行另一次分析,并重复该过程 这个程序需要使用大约7个不同的函数,但我在理解其中2个函数时遇到了困难 职能1: int getRawData(FILE* fp,struct NameRecord records[],int currSize);` 函数被传递一个指向已为打开的文件的指针 阅读。此文件中的每一行的

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

这个程序需要使用大约7个不同的函数,但我在理解其中2个函数时遇到了困难

职能1:

int getRawData(FILE* fp,struct NameRecord records[],int currSize);`
函数被传递一个指向已为打开的文件的指针 阅读。此文件中的每一行的格式如下(名称为 在文件中完全大写):

年份、名称、频率

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

现在我不确定这是否意味着我需要在函数中创建一个新的数组来接收来自文件的记录,或者这完全是另外一种情况,我没有正确地阅读指令。(本例中的文件是malebaynames.csv)

第二功能:

void setYearTotals(struct NameRecord records[], int size, int yearRangeTotal[]);
函数被传递一个名称记录数组(记录)和 该数组(大小)。它还传递了一个名为yearRangeTottal的数组 将用于存储给定年份的总人口 射程

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

(2) 不太清楚。我猜您被要求遍历NameRecord数组,并根据NameRecord.year中的“year”字段递增相应的yearRangeTall元素

void setYearTotals(struct NameRecord records[], int size, int 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