在C中读取文件时出现分段错误

时间:2018-11-24 08:39:25

标签: file segmentation-fault scanf

我正在尝试从文件中读取。我的程序正确读取了第一行,但是在第二行我遇到了分段错误,我也不知道为什么。

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

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

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

1 个答案:

答案 0 :(得分:0)

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