- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <string.h>
- void WpiszDane(char*, char*, int, int);
- void WypiszDane();
- void ZapisDoPliku();
- void OdczytZPliku();
- struct Student
- {
- char* imie;
- char* nazwisko;
- int wiek;
- int indeks;
- };
- struct ListaStudent
- {
- struct Student lista[10];
- int licznik;
- } student;
- //struct ListaSamochodow student;
- void main()
- {
- char imie[20];
- char nazwisko[20];
- int wiek;
- int indeks;
- student.licznik = 0;
- printf("Podaj imie: ");
- scanf("%s", imie);
- printf("Podaj nazwisko: ");
- scanf("%s", nazwisko);
- printf("Podaj wiek: ");
- scanf("%i", &wiek);
- printf("Podaj numer indeksu: ");
- scanf("%i", &indeks);
- WpiszDane(imie, nazwisko, wiek, indeks);
- printf("n");
- printf("Podaj imie: ");
- scanf("%s", imie);
- printf("Podaj nazwisko: ");
- scanf("%s", nazwisko);
- printf("Podaj wiek: ");
- scanf("%i", &wiek);
- printf("Podaj indeks: ");
- scanf("%i", &indeks);
- WpiszDane(imie, nazwisko, wiek, indeks);
- printf("n");
- printf("Podaj imie: ");
- scanf("%s", imie);
- printf("Podaj nazwisko: ");
- scanf("%s", nazwisko);
- printf("Podaj wiek: ");
- scanf("%i", &wiek);
- printf("Podaj indeks: ");
- scanf("%i", &indeks);
- WpiszDane(imie, nazwisko, wiek, indeks);
- printf("n");
- WypiszDane();
- printf("n");
- ZapisDoPliku();
- printf("n");
- OdczytZPliku();
- }
- void WpiszDane(char* imie, char* nazwisko, int wiek, int indeks)
- {
- student.lista[student.licznik].imie = malloc(strlen(imie) + 1);
- strcpy(student.lista[student.licznik].imie, imie);
- student.lista[student.licznik].nazwisko = malloc(strlen(nazwisko) + 1);
- strcpy(student.lista[student.licznik].nazwisko, nazwisko);
- student.lista[student.licznik].wiek = wiek;
- student.lista[student.licznik].indeks = indeks;
- student.licznik++;
- }
- void WypiszDane()
- {
- int i = 0;
- while (i < student.licznik)
- {
- printf("%s, %s, %i , %i n",
- student.lista[i].imie,
- student.lista[i].nazwisko,
- student.lista[i].wiek,
- student.lista[i].indeks);
- i++;
- }
- }
- void ZapisDoPliku()
- {
- FILE* plik;
- plik = fopen("student.txt", "w");
- int i = 0;
- while (i < student.licznik)
- {
- fprintf(plik, "%s %s %i %in",
- student.lista[i].imie,
- student.lista[i].nazwisko,
- student.lista[i].wiek,
- student.lista[i].indeks);
- i++;
- }
- fclose(plik);
- }
- void OdczytZPliku()
- {
- FILE* plik = fopen("student.txt", "r");
- char imie[20];
- char nazwisko[20];
- int wiek;
- int indeks;
- char separator;
- int koniec;
- while (1)
- {
- koniec = fscanf(plik, "%s", imie);
- if (koniec == EOF)
- {
- printf("n");
- printf("*** %i ***n", koniec);
- printf("n");
- break;
- }
- fscanf(plik, "%c", &separator);
- fscanf(plik, "%s", nazwisko);
- fscanf(plik, "%c", &separator);
- fscanf(plik, "%i", &wiek);
- fscanf(plik, "%c", &separator);
- fscanf(plik, "%i", &indeks);
- fscanf(plik, "%c", &separator);
- printf("%i: %s, %s, %i , %i n", koniec, imie, nazwisko, wiek, indeks);
- }
- fclose(plik);
- }