Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- KCsoport *KCsoport_betolt(JKategoria *jkategoria){
- /* Fájlkezelés */
- // Fájl elérési útvonalának meghatározása
- char kerdeskategoriak_utvonal[50];
- sprintf(kerdeskategoriak_utvonal, "kategoria_%d/kerdescsoportok.txt", jkategoria->azonosito);
- FILE *fp;
- fp = fopen(kerdeskategoriak_utvonal, "r"); // Fájl megnyitása
- // Hibakezelés (nem sikerült megnyitni a fájlt)
- if(!fp)
- hibakepernyo("Nem sikerült megnyitni a kérdéscsoportokat tartalmazó fájlt!");
- /* Kérdéscsoportok betöltése */
- // Láncolt lista első eleme (strázsa)
- KCsoport *elso = (KCsoport *)malloc(sizeof(KCsoport));
- elso->kovetkezo = NULL;
- KCsoport uj; // Új (betöltött), hozzáfűzendő elem
- // Fájlon végig, elemek betöltése
- int scanf_p; // scanf által beolvasott paraméterek száma
- int i = 1; // sorok számolása, hogy a hiba kiírható legyen
- while ((scanf_p = fscanf(fp, "%d;%[^\n]\n", &(uj.azonosito), uj.nev)) != EOF){
- if(scanf_p == 2){ // Sikerült mind a 2 paramétert beolvasni
- KCsoport_hozzafuz(elso, &uj); // Hozzáfűzés a láncolt listához
- }else{ // Hibás sor
- char feketelyuk[2000]; // ~ /dev/null
- fscanf(fp, "%[^\n]\n", feketelyuk); // Hibás sor átugrása
- fprintf(stderr, "%s:%d hibás formátumú!\n", kerdeskategoriak_utvonal, i); // Hiba kiírása
- }
- i++; // Sorok számolásához
- }
- /* Fájlkezelés */
- fclose(fp); // Fájl bezárása
- /* Visszatérés */
- return elso; // Visszatérés a láncolt lista első (strázsa) elemére mutató pointerrel
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement