Start | Zajęcia 1 | Zajęcia 2 | Zajęcia 3 | Zajęcia 4 | Zajęcia 5 | Zajęcia 6 | Zajęcia 7 | Zajęcia 8 | Zajęcia 9 | Zajęcia 10 | Pliki z zajęć |
---|
Biblioteka
#include <stdio.h>
Otwieranie i zamykanie pliku
FILE *fopen(const char *nazwapliku, const char *tryb); int fclose (FILE *plik);
Tryb: „r” - odczyt, „w” - zapis, „a” - dopisanie na końcu, „rb”, „wb” - odczyt i zapis pliku binarnego
Odczyt i zapis (plik tekstowy)
int fscanf(FILE *stream, const char *format, ...); int fprintf(FILE *plik, const char *format, ...);
Odczyt i zapis (plik binarny)
size_t fread(void *wsk, size_t rozmiar, size_t ilosc, FILE *plik); size_t fwrite(const void *wsk, size_t rozmiar, size_t ilosc, FILE *plik);
Wykrywanie błędów (koniec pliku)
int feof(FILE *plik);
Więcej informacji o funkcjach biblioteki stdio.h
#include <stdio.h> int main() { FILE *plik; int liczba,i=0; plik = fopen("liczby.txt","r"); if (plik == NULL) { printf("Blad otwarcia pliku \"liczby.txt\"\n"); return 1; } printf("Ok. Zaczynam czytac plik:\n"); while(feof(plik) == 0) { fscanf(plik,"%d",&liczba); printf("%d => %d\n",i,liczba); i++; } fclose(plik); return 0; }
Ćwiczenia
zapisz_macierz
- argumentami funkcji jest macierz i jej wymiary, oraz wskaźnik pliku tekstowego (do struktury FILE
) otworzonego w trybie umożliwiającym zapis. Funkcja najpierw umieszcza w pliku dwie liczby całkowite określające rozmiar macierzy a następnie wartości poszczególnych elementów macierzyodczytaj_macierz
- argumentami funkcji jest uchwyt do pliku (wskaźnik do struktury FILE
) oraz wskaźniki do dwóch zmiennych typu całkowitego, do których zostaną wczytane wymiary macierzy. Funkcja zwraca macierz (adres do dynamicznie za-alokowanej macierzy) wczytaną z pliku tekstowego lub NULL
jeśli coś poszło nie tak jak powinno (brak pamięci, błąd odczytu pliku, itp.). czytajlinie
z jednych z poprzednich zajęćgrep
(patrz zajęcia 7) tak aby przyjmował więcej niż jeden argument wejściowy. Pierwszym argumentem ma być szukany wzorzec a kolejnymi argumentami nazwy plików w których wzorzec będzie szukany. Program wyświetla linie z podanych plików w których pojawia się szukany wzorzecbaza_danych
(patrz zajęcia 8), tak aby na początku program wczytywał bazę danych z zapisanego wcześniej pliku tekstowego a na koniec program zapisywał do tego samego pliku aktualną zawartość bazy danych