Ошибка сегментации при чтении файла в C - PullRequest
0 голосов
/ 24 ноября 2018

Я пытаюсь прочитать из файла.Моя программа правильно читает первую строку, но во второй строке я получаю ошибку сегментации, и я понятия не имею, почему это так.

Вот мой код (извините, на венгерском языке):

FILE *fp = fopen (fajlnev, "r");
if (fp == NULL) {
    perror("Fájl megnyitása sikertelen");
    return;
}
char tmp [21];
strcpy(tmp,nev);
strcpy(pj->nev,"\0");
char buf1, buf2, buf3;
fscanf(fp, "%c%c%c", &buf1, &buf2, &buf3);
while (strcmp(pj->nev, tmp)!=0 ) {
    fscanf(fp, "%s %d %d\n", pj->nev, &(pj->meret), &(pj->pontszam));       

    for(int i=0; i<pj->meret; i++) {
        for(int k=0; k<pj->meret; k++) {
            fscanf(fp, "%u",  &(pj->foldek[i][k].n));
            fscanf(fp, "%d", &(pj->foldek[i][k].allapot));
            fscanf(fp, "%ld", (long *)&(pj->foldek[i][k].ido));
            printf("hiba");

        }
    }
 fscanf(fp, "\n");
}

pj->foldek[i][j].n - это перечислимый тип, allapot - это целое число, а ido - это time_t

Буду очень признателен, если вы поможете мне!:)

1 Ответ

0 голосов
/ 01 декабря 2018

Пожалуйста, измените цикл while: while (! Feof (fp) && strcmp (pj-> nev, tmp)! = 0)

...