파일로 부터 데이터 입력 받기(구조체 배열)
향율
질문 제목 :파일로 부터 데이터 입력 받기질문 내용 :지금 파일이 있는데 그걸 구조체 배열로 하나 하나 입력 받아야 됩니다.
가정 : 나는 파일이 몇 줄인지 모른다(알지만 그렇게 프로그램을 짜야됩니다. 일단은 23000줄정 도 있어요)그래서 맨 처음에 구조체 배열 선언 할 때struct str str[] 요 괄호 안에 숫자를 집어 넣어서 크기를 정해 줘야
오류가 안날 텐데 몇 줄인지 모르니 할 수가 없고 안하면 오버플로우 나버리는데어떻게 좋은 방 법이 없나요?
제가 생각 한 방법은
함수 하나를 몇 줄인지 확인 용으로 사용
ex) for(i=0;fscanf(fp,%d:%d:....)==인자 숫자;i++){
}
return i;
그리고 리턴을 몇 줄인지 받아서
struct str[리턴 받은 것] 해서 다시 함수에 넣어서 입력 받음인데
이렇게 하면 코딩이 좀 더러워 질 것 같아서 질문 올렵 봅니다.
int main(){
int i;
int num;
struct str count[1];
num=카운트 함수
struct str str[num];
저장용 함수
}
이렇게 해도 되긴 되지만 좀더 나은 방법이 없나 싶어서 올려 봅니다.혹시 이해가 안 되시면 댓글 남겨 주세요 .
-
찰스
malloc으로 어떻게 해야 되나요 for문에서 malloc 으로 돌리면 할 때 마나 어레이 숫자가 늘어나요?
-
타우러스
생각하시는 방법이 최선인듯 싶습니다.
다만 배열의 크기는 정수 상수를 사용해야 하므로 메모리는 동적할당해서 사용하셔야 할 것입니다.
그래서 파일을 만들 때, 항상 자료의 수를 먼저 적어두는 형태로 설계를 해야 합니다.