텍스트 파일 내용 구조체에 담기!
글쓴이: p952973 / 작성시간: 화, 2014/07/01 - 3:15오후
다음과 같이 텍스트의 내용을 구조체에 담고 싶습니다.
아래와 같이 텍스트 양이 정해져 있을 때에는 배열로 선언하면 되지만 모를때에는 동적 할당을 이용해야 하는걸로 알고 있습니다.
어떤 방식으로 해야 효율적일지 알려주세요 너무 궁금합니다!
#include
struct member{
char name[10];
int age;
char sex[3];
char city[10];
};
int main()
{
struct member m[3];
int i;
FILE *f;
f=fopen("a.txt","r");
for(i=0;i<3;i++)
fscanf(f,"%s %d %s %s",&m[i].name,&m[i].age, &m[i].sex, &m[i].city);
fclose(f);
for(i=0;i<3;i++)
printf("%s %d %s %s\n",m[i].name,m[i].age, m[i].sex, m[i].city);
return 0;
}
Forums:
이걸 참고해보세요..
http://stackoverflow.com/questions/3635343/parse-an-unknown-size-string
대충 두 가지가 제시돼 있습니다.
- std::getline을 이용하는 방법.
- 일단 정해진 양만큼 메모리를 할당한뒤 fgets등으로 저장해보고 나서 버퍼 끝을 조사해서 아직 안 끊겼으면 추가로 버퍼를 할당하고 재시도. (라인을 읽고 나면 파싱을 다시 또 해야겠죠.)
저라면 std::getline을 사용하든지 아니면 아예 컨테이너로 xml을 사용할듯 합니다. xml 핸들링 라이브러리를 사용할 경우 관련 처리가 이미 다 구현돼있으니 입출력에 대해 따로 신경쓸 필요가 없어집니다.
--
댓글 달기