# include # include # include void Vpisi(struct Adresar **zac); void Izpisi(struct Adresar **zac); struct Adresar { char ime[10]; char priimek[12]; struct Adresar *vezava; }; void main() { int izbira; struct Adresar **zac; *zac = NULL; do { clrscr(); printf("Vpiçi (1, 2 ali 3): "); scanf("%d", &izbira); switch (izbira) { case 1: Vpisi(zac); break; case 2: Izpisi(zac); break; case 3: break; default: printf("\nNapacna izbira. Poskusite znova."); getch(); } } while (izbira != 3); } void Vpisi(struct Adresar **zac) { FILE *izhod; int i, stevilo; struct Adresar *novi; izhod = fopen("adresar.dat", "a"); clrscr(); printf("Koliko jih bos vpisal: "); scanf("%d", &stevilo); gets(0); // da ne preskoŸi imena for (i=1; i<=stevilo; i++) { novi=(struct Adresar*)malloc(sizeof(struct Adresar)); printf("Vpisi ime: "); gets(novi->ime); printf("Vpisi priimek: "); gets(novi->priimek); fwrite(novi, sizeof(struct Adresar), 1, izhod); novi->vezava = *zac; *zac = novi; } fclose(izhod); } void Izpisi(struct Adresar **zac) { FILE *vhod; struct Adresar *pom; vhod = fopen("adresar.dat", "r"); clrscr(); pom = *zac; if (pom != NULL) { while (pom != NULL) { fread(pom, sizeof(struct Adresar), 1, vhod); printf("\n%s %s", pom->ime, pom->priimek); pom = pom->vezava; } } else { printf("\nPodatkovna baza je prazna."); } getch(); fclose(vhod); }