我正在尝试从文件中读取。我的程序正确读取了第一行,但是在第二行我遇到了分段错误,我也不知道为什么。
这是我的代码(很抱歉,它是匈牙利语的):
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
如果您能帮助我,我将不胜感激! :)
答案 0 :(得分:0)
请更改while循环: while(!feof(fp)&& strcmp(pj-> nev,tmp)!= 0)