将文件扫描到嵌套结构中

时间:2014-12-07 01:00:23

标签: c data-structures nested scanf

所以我尝试过寻找与我的情况相似的东西,但是我找不到任何有用的东西,或者我觉得这很简单。

我的问题我确定并不困难,但我不知道如何做到以下几点:

我在结构中有一个结构,需要将多个文件扫描到主结构中。 这就是我所拥有的,而我被卡住的重点在于消息。我觉得我可能需要一个更多的结构,但我不确定

这些是我的结构

 typedef struct {
int year;
int month;
int day;
char time[9];
 } datetime_t

 typedef struct
 {
datetime_t datetime;
double latitude;
double longitude;
double magnitude;
double depth;
char location[LOCATION]
 } data_t

这是我的扫描文件

  void scan_data(data_t Alaska[], data_t Central[],data_t Inner[],
 data_t East[],data_t West[],data_t Canada[MAX_INFO])
 {
int i=0; 
FILE *FAlaska;
FILE *FCentral;
FILE *FInner;
FILE *FEast;
FILE *FWest;
FILE *FCanada;

FAlaska = fopen("Alaska.txt", "r");
FCentral = fopen("Central.txt", "r");
FInner = fopen("InnerMountain.txt", "r");
FEast = fopen("NorthEast.txt", "r");
FWest = fopen("NorthWest.txt", "r");
FCanada = fopen("NorthernCanada.txt", "r");

while  (i < MAX_DATA && 
    fscanf(FAlaska, "%s", data[i].datetime) !=EOF) /*here is my issue*/
{                                                      
    fscanf(FAlaska, "d", data.latitude);
}
fclose(FAlaska);
return;
  }

我不确定如何将数据扫描到结构中的结构中? 你做数据[I] .datetime.year? 或者作为单独的数组/结构扫描到datetime,然后将其分配给更大的结构?

任何帮助将非常感谢如何做到这一点。谢谢。

1 个答案:

答案 0 :(得分:0)

  

我不确定如何或者是否可以将数据扫描到a中的结构中   结构体?你做数据[I] .datetime.year?

是的,我们这样做。例如,如果您的日期/时间格式为&#34; YYYY-MM-DD hh:mm:ss&#34;,则可以使用

data = Alaska;
…
    fscanf(FAlaska, "%d-%d-%d %8s", &data[i].datetime.year,
                                    &data[i].datetime.month,
                                    &data[i].datetime.day, data[i].datetime.time) …