0
所以我试过寻找类似于我的情况的东西,但我无法找到任何有用的或者足够简单的东西来理解。将文件扫描到嵌套结构
我的问题,我相信并不难,但我不知道如何做到以下几点:
我有一个结构内的结构,需要在多个文件扫描到主结构。 这就是我所拥有的和我卡在消息中的地方。我觉得好像我可能还需要一个结构,但我又不敢肯定
这些都是我的结构
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? 或作为单独的数组/结构扫描到日期时间,然后将其分配给更大的结构?
任何帮助将非常赞赏如何做到这一点。谢谢。
你问['fscanf'](http://en.cppreference.com/ w/c/io/fscanf)来读取一个字符串,并将其写入一个结构体,你不能那样做。首先,当'scanf'(和family)读取一个字符串时,它会读取*空格分隔的字符串,因此如果要读取的字符串包含空格,则不会读取所有字符串。其次,如果它是以这种方式在文件中,则需要分别读取嵌套结构的每个字段。 – 2014-12-07 01:13:18
也许http://stackoverflow.com/questions/2722606/how-to-parse-a-string-into-a-datetime-struct-in-c或http://stackoverflow.com/questions/12071342/reading-一个与sscanf的日期将有一定的帮助。重复? – 2014-12-07 04:21:54
@JoachimPileborg我明白你的观点,我对此有所了解。 – puzzlekid 2014-12-07 07:02:17