Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. /* Mateusz Buława */
  2.  
  3. #define _CRT_SECURE_NO_WARNINGS
  4. #include <stdio.h>
  5. #include <string.h>
  6. #include <stdlib.h>
  7. #define MAX 20
  8.  
  9. struct pilkarz {
  10. char nazwisko[40];
  11. char klub[40];
  12. float zarobki;
  13. struct pilkarz *next;
  14. };
  15.  
  16. struct pilkarz fun1() {
  17. struct pilkarz* nowy = (struct pilkarz*)malloc(sizeof(struct pilkarz));
  18. printf("\nPodaj nazwisko pilkarza: ");
  19. scanf("%s", &nowy->nazwisko);
  20. printf("\nPodaj klub pilkarza: ");
  21. scanf("%s", &nowy->klub);
  22. printf("\nPodaj zarobki pilkarza: ");
  23. scanf("%f", &nowy->zarobki);
  24. return *nowy;
  25. }
  26.  
  27. int main() {
  28.  
  29. FILE * A;
  30. char wejscie[MAX];
  31.  
  32. //otwarcie pliku
  33. printf("Podaj nazwe pliku z rozszerzeniem .txt: ");
  34. scanf("%s", &wejscie);
  35. A = fopen(wejscie, "r");
  36.  
  37. //blad otwarcia pliku
  38. if (A == NULL) {
  39. printf("\nBlad otwarcia pliku.\n");
  40. fclose(A);
  41. return 0;
  42. }
  43. else
  44. printf("Plik wejsciowy zostal otwarty.\n");
  45.  
  46. struct pilkarz * pel = NULL; //pierwszy element
  47. struct pilkarz * pom = NULL; //wskaznik na blok listy
  48. int rozmiar = 0;
  49. //tworzenie listy
  50. while (feof(A) == 0) {
  51. rozmiar++;
  52. if (pel == NULL) {
  53. pel = pom = (struct pilkarz*)malloc(sizeof(struct pilkarz));
  54. }
  55. else {
  56. pom->next = (struct pilkarz*)malloc(sizeof(struct pilkarz));
  57. pom = pom->next;
  58. }
  59. //wczytanie z pliku do listy
  60. fscanf(A, "%s %s %f", &pom->nazwisko, &pom->klub, &pom->zarobki);
  61. //wypisanie w konsoli
  62. printf("\nNazwisko pilkarza: %s, klub: %s, pensja: %.2f$", pom->nazwisko, pom->klub, pom->zarobki);
  63. pom->next = NULL;
  64. }
  65.  
  66. struct pilkarz new_el = fun1(); //nowy element utworzony przez użytkownika
  67. pom = &new_el;
  68. pom->next = pel;
  69. pel = pom;
  70. int j = 0;
  71. while (j<(rozmiar+1) ){
  72. printf("Nazwisko pilkarza: %s, klub: %s, pensja: %.2f$\n", pom->nazwisko, pom->klub, pom->zarobki);
  73. pom = pom->next;
  74. pom->next;
  75. j++;
  76. }
  77.  
  78. //usuniecie "starej" glowy
  79. struct pilkarz* usun;
  80. usun = pel->next;
  81. pel->next = pel->next->next;
  82. free(usun);
  83.  
  84. //otwarcie pliku wyjsciowego oraz zapisanie listy
  85. FILE* B;
  86. char wyjscie[MAX];
  87. printf("\nPodaj nazwe pliku wyjsciowego: ");
  88. scanf("%s", &wyjscie);
  89. B = fopen(wyjscie, "w");
  90. //blad otwarcia pliku
  91. if (B == NULL) {
  92. printf("\nBlad otwarcia pliku.\n");
  93. fclose(B);
  94. return 0;
  95. }
  96. else
  97. printf("Plik wejsciowy zostal otwarty.\n");
  98.  
  99. int k = 0;
  100. pom = pel;
  101. while (k<(rozmiar)) {
  102. fprintf(B, "\nNazwisko pilkarza: %s, klub: %s, pensja: %.2f$", pom->nazwisko, pom->klub, pom->zarobki);
  103. pom = pom->next;
  104. pom->next;
  105. k++;
  106. }
  107.  
  108. //koniec programu
  109. fclose(A);
  110. fclose(B);
  111. while (pom != NULL) {
  112. pel = pom;
  113. pom = pel->next;
  114. free(pel);
  115. }
  116. printf("\nKoniec programu.\n");
  117. return 0;
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement