Facebook
From dasdas, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 306
  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <stdio.h>
  4. #include <string.h>
  5.  
  6. void WpiszDane(char*, char*, int, int);
  7. void WypiszDane();
  8. void ZapisDoPliku();
  9. void OdczytZPliku();
  10.  
  11. struct Student
  12. {
  13.         char* imie;
  14.         char* nazwisko;
  15.         int wiek;
  16.         int indeks;
  17. };
  18.  
  19. struct ListaStudent
  20. {
  21.         struct Student lista[10];
  22.         int licznik;
  23. } student;
  24.  
  25. //struct ListaSamochodow student;
  26.  
  27. void main()
  28. {
  29.         char imie[20];
  30.         char nazwisko[20];
  31.         int wiek;
  32.         int indeks;
  33.  
  34.         student.licznik = 0;
  35.  
  36.         printf("Podaj imie: ");
  37.         scanf("%s", imie);
  38.         printf("Podaj nazwisko: ");
  39.         scanf("%s", nazwisko);
  40.         printf("Podaj wiek: ");
  41.         scanf("%i", &wiek);
  42.         printf("Podaj numer indeksu: ");
  43.         scanf("%i", &indeks);
  44.         WpiszDane(imie, nazwisko, wiek, indeks);
  45.         printf("n");
  46.  
  47.         printf("Podaj imie: ");
  48.         scanf("%s", imie);
  49.         printf("Podaj nazwisko: ");
  50.         scanf("%s", nazwisko);
  51.         printf("Podaj wiek: ");
  52.         scanf("%i", &wiek);
  53.         printf("Podaj indeks: ");
  54.         scanf("%i", &indeks);
  55.         WpiszDane(imie, nazwisko, wiek, indeks);
  56.         printf("n");
  57.  
  58.         printf("Podaj imie: ");
  59.         scanf("%s", imie);
  60.         printf("Podaj nazwisko: ");
  61.         scanf("%s", nazwisko);
  62.         printf("Podaj wiek: ");
  63.         scanf("%i", &wiek);
  64.         printf("Podaj indeks: ");
  65.         scanf("%i", &indeks);
  66.         WpiszDane(imie, nazwisko, wiek, indeks);
  67.         printf("n");
  68.  
  69.         WypiszDane();
  70.         printf("n");
  71.         ZapisDoPliku();
  72.         printf("n");
  73.         OdczytZPliku();
  74. }
  75.  
  76. void WpiszDane(char* imie, char* nazwisko, int wiek, int indeks)
  77. {
  78.         student.lista[student.licznik].imie = malloc(strlen(imie) + 1);
  79.         strcpy(student.lista[student.licznik].imie, imie);
  80.  
  81.         student.lista[student.licznik].nazwisko = malloc(strlen(nazwisko) + 1);
  82.         strcpy(student.lista[student.licznik].nazwisko, nazwisko);
  83.  
  84.         student.lista[student.licznik].wiek = wiek;
  85.         student.lista[student.licznik].indeks = indeks;
  86.  
  87.         student.licznik++;
  88. }
  89.  
  90. void WypiszDane()
  91. {
  92.         int i = 0;
  93.         while (i < student.licznik)
  94.         {
  95.                 printf("%s, %s, %i , %i n",
  96.                         student.lista[i].imie,
  97.                         student.lista[i].nazwisko,
  98.                         student.lista[i].wiek,
  99.                         student.lista[i].indeks);
  100.                 i++;
  101.         }
  102. }
  103.  
  104. void ZapisDoPliku()
  105. {
  106.         FILE* plik;
  107.         plik = fopen("student.txt", "w");
  108.  
  109.         int i = 0;
  110.         while (i < student.licznik)
  111.         {
  112.                 fprintf(plik, "%s %s %i %in",
  113.                         student.lista[i].imie,
  114.                         student.lista[i].nazwisko,
  115.                         student.lista[i].wiek,
  116.                         student.lista[i].indeks);
  117.                 i++;
  118.         }
  119.         fclose(plik);
  120. }
  121.  
  122. void OdczytZPliku()
  123. {
  124.         FILE* plik = fopen("student.txt", "r");
  125.         char imie[20];
  126.         char nazwisko[20];
  127.         int wiek;
  128.         int indeks;
  129.         char separator;
  130.         int koniec;
  131.  
  132.         while (1)
  133.         {
  134.                 koniec = fscanf(plik, "%s", imie);
  135.                 if (koniec == EOF)
  136.                 {
  137.                         printf("n");
  138.                         printf("*** %i ***n", koniec);
  139.                         printf("n");
  140.                         break;
  141.                 }
  142.                 fscanf(plik, "%c", &separator);
  143.                 fscanf(plik, "%s", nazwisko);
  144.                 fscanf(plik, "%c", &separator);
  145.                 fscanf(plik, "%i", &wiek);
  146.                 fscanf(plik, "%c", &separator);
  147.                 fscanf(plik, "%i", &indeks);
  148.                 fscanf(plik, "%c", &separator);
  149.                 printf("%i: %s, %s, %i , %i n", koniec, imie, nazwisko, wiek, indeks);
  150.         }
  151.  
  152.         fclose(plik);
  153. }