SPRING :: NOTE
[C] 파일을 읽어와 구조체에 담기 본문
반응형
일단 다음과같은 *.txt 파일 혹은 *.csv 파일이 있다 가정하자.
18-Dec-2013
TEST Data Total Col:150
0,18-Apr-2016 00:00:00.000000,10
1,18-Apr-2013 00:00:01.000000,20
.
.
.
.
149,18-Apr-2013 00:00:01.000000,99
헤더파일에 구조체 생성
typedef struct TEST_DATA
{
int aa;
char bb[30];
double cc;
}testData;
구조체 배열 300개 생성
testData tData[300];
본문에 코드 작성
FILE *pFile;
char *pStr;
char strTmp[255];
char* token;
int cnt = 0, colCnt = 0;
int i;
pFile = fopen("a.csv", "rb"); // 파일명 불러오기
if (pFile != NULL)
{
while (!feof(pFile))
{
pStr = fgets(strTmp, sizeof(strTmp), pFile);
if (colCnt >= 2)
{
if (pStr == NULL) break; // NULL이면 루프를 빠져나간다.
// 자료의 두번째 문자열 중 공백이 있으므로 sscanf가 죽는다. 이럴때 정규화식 :: %[^,]
sscanf(pStr, "%d,%[^,],%lf\n",
&tData[cnt].aa,
&tData[cnt].bb,
&dData[cnt].cc
);
cnt++;
}
else
colCnt++;
}
fclose(pFile);
}
else
{
printf("fail");
}
반응형
'Development Language > C · C++ · MFC' 카테고리의 다른 글
[MFC] 현재 시간 얻어오기 (로컬) (0) | 2016.05.09 |
---|---|
[C] 날짜및 시간정보 문자열 변경 (0) | 2016.05.03 |
[MFC] 프로그램 종료버튼 이벤트(X버튼) (0) | 2016.04.27 |
[MFC] Modaless(모달리스) 컨트롤 (0) | 2016.04.27 |
[MFC] 프로그램 중복 실행 방지하기 (0) | 2016.04.05 |
Comments