0

我正在尝试从文件中读取。我的程序正确读取了第一行,但在第二行出现分段错误,我不知道为什么会这样。

这是我的代码(抱歉是匈牙利语):

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是整数,idotime_t

如果您能帮助我,我将不胜感激!:)

4

1 回答 1

0

请更改 while 循环: while (!feof(fp) && strcmp(pj->nev, tmp)!=0 )

于 2018-12-01T17:46:15.560 回答