Advertisement
Guest User

Untitled

a guest
Feb 8th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. 7. Napisz program, który:
  2. wczyta z pliku tekstowego DATA.txt informacje o 10 osobach: imię, nazwisko i wiek,
  3. zapisze je w zmiennej tablicowej o elementach typu struktury,
  4. 3wypisze tablicę struktur na ekran.
  5. Każda linia pliku ma zawierać dane jednej osoby o następującej postaci: imię nazwisko wiek
  6. (poszczególne człony rozdzielone pojedynczą spacją).
  7. Program należy napisać z podziałem na funkcje z parametrami. Ponadto ma
  8. on implementować obsługę
  9. wyjątków związanych z plikami, a w razie ich wystąpienia wypisywać użytkownikowi stosowny
  10. komunikat
  11.  
  12.  
  13. Przykładowe zadziałanie:
  14. [1] Jan Kowalski (35)
  15. [2] Piotr Kowalski (12)
  16. [3] Jan Iksinski (55)
  17. [4] Piotr Krol (24)
  18. [5] Adam
  19. Krol (7)
  20. [6] Anna Kowalska (87)
  21. [7] Anna Iksinska (26)
  22. [8] Magda Kowalska (72)
  23. [9] Magda Iksinska (98)
  24. [10] Ola Krol (2)
  25. Uwaga! Program nie może korzystać ze zmiennych globalnych!
  26.  
  27.  
  28. #include <stdio.h>
  29. #include <stdlib.h>
  30. #include <string.h>
  31.  
  32. typedef struct{
  33. char imie[30], nazwisko[30], wiek[20];
  34. }OSOBA;
  35.  
  36. void czytaj_plik(OSOBA dane[12])
  37. {
  38. FILE *f;
  39. f = fopen("DANE.txt", "rt");
  40. char s[256];
  41. char korektor[] = " ";
  42. char * schowek;
  43. int k = 0;
  44.  
  45. if (f == NULL)
  46. printf("Blad otwarcia pliku DATA.txt");
  47.  
  48. int i = 0;
  49. for(i = 0; i < 10; i++)
  50. {
  51. fgets(s, 100, f);
  52.  
  53. schowek = strtok( s, korektor );
  54. strcpy(dane[i].imie,schowek);
  55. while( schowek != NULL )
  56. {
  57. k++;
  58. schowek = strtok( NULL, korektor );
  59. if(k == 1)strcpy(dane[i].nazwisko,schowek);
  60. if(k == 2)strcpy(dane[i].wiek,schowek);
  61. }
  62. dane[i].wiek[2] = '\0';
  63. k = 0;
  64. }
  65. fclose(f);
  66. }
  67. void wyswietl_plik(OSOBA dane[12])
  68. {
  69. int i = 0;
  70. for(i = 0;i < 10;i++)
  71. {
  72. printf("[%d] %s %s (%s)\n", i+1, dane[i].imie, dane[i].nazwisko, dane[i].wiek);
  73. }
  74. printf("\n");
  75. }
  76. int main()
  77. {
  78. OSOBA dane[12];
  79.  
  80. czytaj_plik(dane);
  81. wyswietl_plik(dane);
  82.  
  83.  
  84. system("Pause");
  85. return 0;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement