Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //functions.h
- #ifndef FUNCTIONS_H
- #define FUNCTIONS_H
- typedef struct student {
- char* ime;
- char* indeks;
- float prosjek;
- }STUDENT;
- int BrojElemenata(void);
- STUDENT* Zauzimanje(int);
- void Popunjavanje(STUDENT*, int);
- void Zapisivanje(STUDENT*, int, char*);
- void Ispisivanje(char*, int);
- void Oslobadanje(STUDENT*, int);
- #endif
- //main.c
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include "functions.h"
- int BrojElemenata(void)
- {
- int n;
- scanf ("%d", &n);
- return n;
- }
- STUDENT* Zauzimanje(int n)
- {
- STUDENT* P = (STUDENT*)malloc(n * sizeof(STUDENT));
- return P;
- }
- void Popunjavanje(STUDENT* P, int n)
- {
- char ime[100], indeks[100];
- float prosjek;
- for (int i = 0; i < n; ++i) {
- P[i].ime = malloc(100 * sizeof(char));
- P[i].indeks = malloc(100 * sizeof(char));
- scanf ("%s", ime);
- scanf ("%s", indeks);
- scanf ("%f", &prosjek);
- P[i].prosjek = prosjek;
- strcpy(P[i].indeks, indeks);
- strcpy(P[i].ime, ime);
- }
- }
- void Zapisivanje(STUDENT* P, int n, char* s)
- {
- FILE* fp;
- fp = fopen(s, "wb");
- for (int i = 0; i < n; ++i)
- fwrite(&(P[i]), sizeof(STUDENT), 1, fp);
- fclose(fp);
- }
- void Ispisivanje(char* s, int n)
- {
- STUDENT tmp;
- FILE* fp;
- fp = fopen(s, "rb");
- for (int i = 0; i < n; ++i) {
- fread(&tmp, sizeof(STUDENT), 1, fp);
- fprintf(stdout, "%s ", tmp.ime);
- fprintf(stdout, "%s ", tmp.indeks);
- printf ("%f\n", tmp.prosjek);
- }
- fclose(fp);
- }
- void Oslobadanje(STUDENT* P, int n)
- {
- free(P);
- }
- int main()
- {
- int n = BrojElemenata();
- STUDENT* P = Zauzimanje(n);
- Popunjavanje(P, n);
- Zapisivanje(P, n, "Studenti.bin");
- Ispisivanje("Studenti.bin", n);
- Oslobadanje(P, n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement