0
strsep()로 쉼표로 구분 된 값 파일을 구문 분석 할 때 원치 않는 결과가 표시됩니다. 그것은 하나의 값 (즉, 0-9)을 가진 숫자로 파일의 절반을 위해 작동하지만, 512와 같이 여러 값이 추가되는 즉시strsep로 분할하여 CSV 파일 구문 분석
512 12 2 512를 인쇄합니다. 12 2 등. 이것이 루핑하는 특정 스타일 때문인지 확실하지 않습니다. 별로 모르겠다.
int main() {
char line[1024];
FILE *fp;
int data[10][10];
int i = 0;
int j = 0;
fp = fopen("file.csv", "r");
while(fgets(line, 1024, fp)) {
char* tmp = strdup(line);
char* token;
char* idx;
while((token = strsep(&tmp, ","))) {
for (idx=token; *idx; idx++) {
data[i][j] = atoi(idx);
j++;
}
}
i++;
j=0;
free(tmp);
}
for(i = 0; i < 10; i++) {
for(j = 0; j < 10; j++) {
printf("%d ", data[i][j]);
}
printf("\n");
}
fclose(fp);
}
디버거에서 코드를 단계별로 실행하면 아마도 매우 계몽 적이었을 것입니다. 디버거 사용법을 배우고 간단한 문제가 매우 빨리 해결 될 수 있습니다. –