c++ 오류 확인좀 부탁드립니다.ㅜ
글쓴이: cider3674 / 작성시간: 수, 2017/11/22 - 4:06오후
c++에는 익숙하지 않은 사람입니다. ㅜ
파일리스트를 읽어와서 파일제목을 저장하려고 하는데
파일리스트가 너무 많아 파일 제목을 20개 단위로 자르는 작업을 진행 중입니다.
어떤 부분이 잘못된건지 가르쳐주십시오 ㅜ
(중간중간 제가 주석형식으로 궁금한점을 써놨는데 그부분도 답변해주시면 감사합니다.)
char qValues[1024] = {0,};
char temp[1024] = {0,};
char *sArr[100] = {NULL,};
char *strFileNm[5] = {NULL,};
int cnt=0;
int columCnt=0;
//FileList에 파일제목이 a.pdf|b.pdf 이런식으로 넘어오게 되어있습니다.
long len = FileList.GetLength();
len = len*2;
char* szTmp = new char[len+1];
memset(szTmp,0,len+1);
USES_CONVERSION;
strcpy(szTmp, T2A(FileList));
// | 문자 기준으로 문자열을 자름
char *sPtr = strtok(szTmp, "|");
while(sPtr != NULL)
{
//문자열을 자른 뒤 메모리 주소를 문자열 포인터 배열에 저장
sArr[cnt] = sPtr;
cnt++;
}
if(cnt > 20)
{
for(int i=0; i<cnt; i++)
{
//sArr에 있는 값들을 strFileNm 배열에 넣어준다
strcat(strFileNm[columCnt], sArr[i]);
//위에서 strFileNm배열에 sArr배열값들을 합치는건 이런식으로 합쳐도 될까요?
//파일제목이 20의 배수개가 되면 strFileNm 배열의 다음번지로 insert하기 위한 작업
if(i%20==0)
{
columCnt++;
}
}
}
else
{
for(int i=0; i<cnt; i++)
{
strcat(strFileNm[columCnt], sArr[i]);
}
}
int ncnt = sizeof(strFileNm)/sizeof(char*);
for( int j=0; j<ncnt; j++)
{
//strFileNm이 NULL이 아니면 데이터를 temp에 복사 후 qValues에 합쳐준다.
if(strFileNm[j] != NULL)
{
strcpy(temp, strFileNm[j]);
strcat(qValues,temp);
}
} Forums:


댓글 달기