Stronę tą wyświetlono już: 2552 razy
Otwieranie pliku za pomocą funkcji fopen
Za pomocą funkcji fopen można otworzyć plik w kilku różnych trybach:
- r - tylko do odczytu, wskaźnik pliku ustawiony jest na początku pliku;
- w - tylko do zapisu. Usuwa zawartość pliku lub tworzy nowy jeżeli ten nie istnieje;
- a - otwiera tylko do zapisu z zachowaniem danych w nim zawartych. Wskaźnik pliku jest ustawiony na jego końcu a plik w przypadku, gdy nie istnieje zostanie utworzony;
- x - tworzy plik tylko do zapisu, zwraca FALSE, gdy plik już istnieje;
- r+ - otwiera do odczytu i zapisu. Wskaźnik pliku zaczyna się na jego początku;
- w+ - otwiera plik do odczytu i zapisu. Usuwa zawartość pliku lub tworzy nowy, jeżeli ten nie istniał;
- a+ - otwiera plik do odczytu i zapisu. Dane w pliku (jeżeli ten istniał) zostaną zachowane a wskaźnik pliku ustawiony jest na jego koniec. Tworzy nowy plik, jeżeli ten nie istniał wcześniej;
- x+ - otwiera plik do odczytu i zapisu. Zwraca fałsz, gdy ten już istnieje.
Przykład otwarcia pliku:
Wczytywanie danych linia po linii
W celu wczytania pojedynczej linii pliku należy skorzystać z funkcji fgets, oto przykład wczytania pojedynczej linii pliku:
Możliwe jest również wczytanie całego pliku linia po linii z użyciem funkcji feof:
Wczytywanie pliku znak po znaku
Istnieje również funkcja fgetc, która umożliwia wczytanie pojedynczego znaku pliku:
Wczytywanie całej zawartości pliku
Cały plik można wczytać do zmiennej korzystając z funkcji fread:
Zapis do pliku
Za pomocą funkcji fwrite możliwe jest zapisanie danych do pliku:
Zamykanie pliku
We wszystkich powyższych plikach brakuje tylko zamknięcia pliku za pomocą funkcji fclose:
Zmiana położenia wskaźnika pliku
Czasami zachodzi konieczność zmiany położenia wskaźnika pliku. W tym celu należy posłużyć się funkcją fseek, która przyjmuje trzy parametry:
- uchwyt pliku;
- przesunięcie wskaźnika;
- określenie punktu, względem którego przesunięcie zostanie ustawione. Możliwe ustawienia to:
- SEEK_SET - ustawia położenie względem początku pliku (domyślnie ustawione);
- SEEK_CUR - ustawia położenie względem obecnej pozycji wskaźnika pliku;
- SEEK_END - ustawia położenie względem końca pliku
Przykład:
Pozyskiwanie bieżącej pozycji wskaźnika pliku
Za pomocą funkcji ftell możliwe jest ustalenie położenie wskaźnika pliku: