Advertisement
Guest User

Untitled

a guest
May 21st, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. //struktura przechowujaca dane osobowe
  6. struct DANE
  7. {
  8. char imie[15], nazwisko[15];
  9. unsigned wiek;
  10. double zarobki;
  11. };
  12.  
  13. void zlicz (char c){
  14. FILE *f;
  15. int licz=0;
  16. f=fopen("abc.txt","r");
  17. while((c=getc(f))!=EOF){
  18. if(c==c)
  19. licz++;
  20. }
  21. printf("plik zawiera %d\n",licz-1);
  22.  
  23. }
  24.  
  25.  
  26.  
  27. void wpisz(){
  28. FILE *f;
  29. char txt [100];
  30. printf("wpisz tekst \n");
  31. scanf("%s",&txt);
  32.  
  33. f=fopen("abc.txt","w");
  34. fprintf(f,"%s",txt);
  35. fclose(f);
  36. }
  37.  
  38.  
  39. //funkcja wysylajaca do strumienia strukturze typu DANE
  40. void zapisz_dane(FILE *f, struct DANE *pd)
  41. {
  42.  
  43. //dane tekstowe-fprintf dziala identycznie jak printf w aspekcie
  44. //formatowania stringu
  45.  
  46. fprintf(f, "Imie: %s\n Nazwisko: %s\n Wiek: %u\n Zarobki: %.2f\n"
  47. "------------------------\n",
  48. pd->imie,
  49. pd->nazwisko,
  50. pd->wiek,
  51. pd->zarobki);
  52. }
  53. //funkcja odczytujaca ze strumienia strukturze typu DANE
  54.  
  55. void wczytaj_dane(FILE *f, struct DANE *pd)
  56. {
  57. //dane tekstowe - fscanf dziala identycznie jak scanf w aspekcie
  58. //formatowania wejscia
  59.  
  60. fscanf(f, "%*s %s\n%*s %s\n%*s %u\n%*s %le%*[\n-]",
  61. pd->imie,
  62. pd->nazwisko,
  63. &pd->wiek,
  64. &pd->zarobki);
  65.  
  66. }
  67.  
  68. #define SIZE 3 //rozmiar tablicy
  69.  
  70. int main() {
  71.  
  72. FILE *f; //utworzenie tzw. uchwytu do pliku
  73.  
  74. struct DANE P[SIZE] =
  75. {
  76. {"Marek","Wolski",35,3500.50},
  77. {"Artur","Kowalski",25,2500.20},
  78. {"Jaroslaw","Olech",40,4500.30}
  79.  
  80.  
  81. };
  82.  
  83. int i;
  84.  
  85. //Otwarcie pliku funkcja "fopen"- posiada ona dwa parametry trybu
  86. //pracy strumienia
  87. //
  88. //1. Sposob dostepu do pliku: r - tylko odczyt, w - tylko zapis,
  89. // a - zapis na koncu
  90. //2. Typ pliku: t- tekstowy, b - binarny
  91. //
  92. //Ponadto jej argumentem jest sciezka dostepu do pliku .
  93. //Funkcja ta zwraca adres utworzonego strumienia przechowywany
  94. //przez uchwyt do niego
  95.  
  96. //"wt" - operacja zapisu do pliku tekstowego "dane.txt",
  97. //jesli nie istnieje, to zostanie stworzony
  98. //jesli istnieje, to zostanie nadpisany
  99.  
  100. f= fopen("dane.txt", "wt");
  101.  
  102. //zapisanie do pliku zawartosci kolejnych trzech struktur typu DATA
  103. for(i=0;i<SIZE;i++)
  104. zapisz_dane(f,&P[i]);
  105.  
  106. fclose(f); // funkcja fclose - zamyka strumien okreslony przez jej
  107. //argument
  108.  
  109. //"rt" - operacja odczytu od poczatku pliku tekstowego
  110. f= fopen("dane.txt","rt");
  111.  
  112. for(i=0;i<SIZE;i++)
  113. {
  114. //wczytanie z pliku kolejnych struktur do tablicy P
  115. wczytaj_dane(f,&P[i]);
  116. //wypisanie ich na ekranie przy uzyciu strumienia "stdout"
  117. zapisz_dane(stdout,&P[i]);
  118.  
  119.  
  120. }
  121.  
  122. fclose(f); //powtorne zamkniecie pliku
  123.  
  124. return 0;
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement