使用数组读取文件

我要做的是打开一个文件,读取文件中的信息,询问用户一系列数据,并计算每个月中属于该范围的天数百分比。 该文件是一个文件,其中包含每个月每天的天气数据(温度),历经数年。 我在使用数组启动程序时遇到困难,我不知道如何使用该数组从文件中获取信息,然后计算并存储我需要的信息。 感谢任何帮助,这是我的代码到目前为止:

#include  int main() { int range[12], total[12], i, cold, hot, sum, input, month, day, year; float avg, temp; char filename[20]; printf("Tell me about your preferred temperature for flying:\n"); printf("What is the coldest temperature you can fly in?\n"); scanf("%d", &cold); printf("What is the hottest temperature you can fly in?\n"); scanf("%d", &hot); FILE * ifp = 0; printf("Please enter the name of the weather data file.\n"); scanf("%s", filename); ifp = fopen(filename, "r"); return 0; } 

现在我只是开始完成,我认为是正确的,但我不知道下一步该怎么做数组,以便从文本文件中获取信息。 我不需要整个程序完成,我只需要帮助下一步做什么。 这是输出应该是什么样子的一个例子:

 Tell me about your preferred temperature for flying: What is the coldest temperature you can fly in? 60 What is the hottest temperature you can fly in? 80 Please enter the name of the weather data file. weather.txt Month 1: 59.2 percent of days in range. Month 2: 69.2 percent of days in range. Month 3: 72.6 percent of days in range. Month 4: 92.6 percent of days in range. Month 5: 98.7 percent of days in range. Month 6: 48.3 percent of days in range. Month 7: 36.41 percent of days in range. Month 8: 18.9 percent of days in range. Month 9: 57.64 percent of days in range. Month 10: 100.00 percent of days in range. Month 11: 65.4 percent of days in range. Month 12: 80.5 percent of days in range. I recommend month 10 for the flight! 

编辑:文本文件采用以下格式:

 The available data is presented in four columns per day: MONTH DAY YEAR TEMPERATURE The file will end with a -1 on a row by itself. 

文件示例:

  1 1 2013 63.4 1 2 2013 66.1 1 3 2013 67.2 

打开后使用fgets从文件中读取 –

 char data[100]; while(fgets(data,sizeof data,ifp)!=NULL){ // get temperature out of array // convert it and store in a variable } 

或者如果文件中的数据是固定格式,请使用fscanf

– 检查fopen return值。