2014-12-07 2 views
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합니까? 또는 datetime을 별도의 배열/구조체로 스캔 한 다음 나중에 더 큰 구조체에 할당 하시겠습니까?

어떤 도움을 주시면 감사하겠습니다. 고맙습니다.

+0

사용할 수 있습니다 w/c/io/fscanf) 문자열을 읽고 구조체에 쓰면 그렇게 할 수 없습니다. 우선,'scanf' (및 패밀리)가 문자열을 읽을 때 * 공백으로 구분 된 * 문자열을 읽습니다. 그래서 당신이 읽으려는 문자열이 공백을 포함하고 있다면 모두 읽지 않습니다. 둘째로, 중첩 된 구조체의 각 필드를 파일에있는 경우 별도로 읽어야합니다. –

+0

아마도 http://stackoverflow.com/questions/2722606/how-to-parse-a-string-into-a-datetime-struct-in-c 또는 http://stackoverflow.com/questions/12071342/reading- a-date-with-sscanf는 도움이 될 것입니다. 중복? –

+0

@ JoachimPileborg 나는 너의 요점을 보았다. – puzzlekid

답변

0

구조 내의 데이터를 어떻게 스캔 할 수 있는지 잘 모르겠습니다. [I] .datetime.year 데이터를합니까?

예. 날짜/시간 형식 인 경우 예를 들어, "YYYY-MM-DD은 HH : MM : SS", 당신은 당신이 http://en.cppreference.com/ ([`fscanf`]를 물어

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