Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- //struktura przechowujaca dane osobowe
- struct DANE
- {
- char imie[15], nazwisko[15];
- unsigned wiek;
- double zarobki;
- };
- void zlicz (char c){
- FILE *f;
- int licz=0;
- f=fopen("abc.txt","r");
- while((c=getc(f))!=EOF){
- if(c==c)
- licz++;
- }
- printf("plik zawiera %d\n",licz-1);
- }
- void wpisz(){
- FILE *f;
- char txt [100];
- printf("wpisz tekst \n");
- scanf("%s",&txt);
- f=fopen("abc.txt","w");
- fprintf(f,"%s",txt);
- fclose(f);
- }
- //funkcja wysylajaca do strumienia strukturze typu DANE
- void zapisz_dane(FILE *f, struct DANE *pd)
- {
- //dane tekstowe-fprintf dziala identycznie jak printf w aspekcie
- //formatowania stringu
- fprintf(f, "Imie: %s\n Nazwisko: %s\n Wiek: %u\n Zarobki: %.2f\n"
- "------------------------\n",
- pd->imie,
- pd->nazwisko,
- pd->wiek,
- pd->zarobki);
- }
- //funkcja odczytujaca ze strumienia strukturze typu DANE
- void wczytaj_dane(FILE *f, struct DANE *pd)
- {
- //dane tekstowe - fscanf dziala identycznie jak scanf w aspekcie
- //formatowania wejscia
- fscanf(f, "%*s %s\n%*s %s\n%*s %u\n%*s %le%*[\n-]",
- pd->imie,
- pd->nazwisko,
- &pd->wiek,
- &pd->zarobki);
- }
- #define SIZE 3 //rozmiar tablicy
- int main() {
- FILE *f; //utworzenie tzw. uchwytu do pliku
- struct DANE P[SIZE] =
- {
- {"Marek","Wolski",35,3500.50},
- {"Artur","Kowalski",25,2500.20},
- {"Jaroslaw","Olech",40,4500.30}
- };
- int i;
- //Otwarcie pliku funkcja "fopen"- posiada ona dwa parametry trybu
- //pracy strumienia
- //
- //1. Sposob dostepu do pliku: r - tylko odczyt, w - tylko zapis,
- // a - zapis na koncu
- //2. Typ pliku: t- tekstowy, b - binarny
- //
- //Ponadto jej argumentem jest sciezka dostepu do pliku .
- //Funkcja ta zwraca adres utworzonego strumienia przechowywany
- //przez uchwyt do niego
- //"wt" - operacja zapisu do pliku tekstowego "dane.txt",
- //jesli nie istnieje, to zostanie stworzony
- //jesli istnieje, to zostanie nadpisany
- f= fopen("dane.txt", "wt");
- //zapisanie do pliku zawartosci kolejnych trzech struktur typu DATA
- for(i=0;i<SIZE;i++)
- zapisz_dane(f,&P[i]);
- fclose(f); // funkcja fclose - zamyka strumien okreslony przez jej
- //argument
- //"rt" - operacja odczytu od poczatku pliku tekstowego
- f= fopen("dane.txt","rt");
- for(i=0;i<SIZE;i++)
- {
- //wczytanie z pliku kolejnych struktur do tablicy P
- wczytaj_dane(f,&P[i]);
- //wypisanie ich na ekranie przy uzyciu strumienia "stdout"
- zapisz_dane(stdout,&P[i]);
- }
- fclose(f); //powtorne zamkniecie pliku
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement