다음 코드는 a를 덮어 쓰는 것처럼 보이므로 입력 파일의 마지막 줄과 동일한 줄을 포함합니다. while 루프를 구조화하여 각 버퍼 라인을 배열의 개별 인스턴스에 저장하도록하려면 어떻게해야합니까?C : 어떻게 덮어 쓰지 않도록 line_buffer를 구성합니까?
void readfile(const char *filename) {
FILE *f;
f = fopen(filename, "r");
char *a[500];
char *array[50];
char line_buffer[BUFSIZ];
char line=0;
//struct cal_event one[200];
while (fgets(line_buffer, sizeof(line_buffer), f)) {
++line;
a[line] = (char*) &line_buffer;
//printf("%s ", a[line]);
}
int l;
for(l=1; l<30; l++) {
printf("%s ", a[l]);
}
}
malloc을 사용하지 않아도됩니다. –
@ KimberleeGraham-Knight :이 경우'lines' (또는 원하는 이름은 무엇이든)을'char lines [max_lines] [max_length];와 같이 미리 할당하고 각 행을 그 안에있는 올바른 위치로 직접 읽어 들일 수 있습니다 . 쓰레기로 충분히 쓰이지는 않지만 그 외에는 잘 작동합니다. –