C Zarządzanie plikami
Plik może służyć do przechowywania dużej ilości trwałych danych. Podobnie jak wiele innych języków, „C” udostępnia następujące funkcje zarządzania plikami:
- Tworzenie pliku
- Otwieranie pliku
- Odczytywanie pliku
- Zapis do pliku
- Zamykanie pliku
Poniżej przedstawiono najważniejsze funkcje zarządzania plikami dostępne w „C”
funkcja | cel |
fopen () | Tworzenie pliku lub otwieranie istniejącego pliku |
fclose () | Zamykanie pliku |
fprintf () | Zapisywanie bloku danych do pliku |
fscanf () | Czytanie blokuje dane z pliku |
getc () | Odczytuje pojedynczy znak z pliku |
putc () | Zapisuje pojedynczy znak do pliku |
getw () | Odczytuje liczbę całkowitą z pliku |
putw () | Zapisanie liczby całkowitej do pliku |
fseek () | Ustawia położenie wskaźnika pliku do określonej lokalizacji |
ftell () | Zwraca bieżącą pozycję wskaźnik pliku |
rewind () | Ustawia wskaźnik pliku na początku pliku |
W tym samouczku nauczysz się –
- Jak utworzyć plik
- Jak zamknąć plik:
- zapis do pliku
- fputc () Funkcja:
- fputs () Funkcja:
- fprintf () Funkcja:
- Odczytywanie danych z pliku
- Interaktywny plik Odczyt i zapis za pomocą getc i putc
Jak utworzyć plik
Gdy chcesz pracować z plikiem, pierwszym krokiem jest utworzenie pliku. Plik to nic innego jak przestrzeń w pamięci, w której przechowywane są dane.
Aby utworzyć plik w programie „C”, należy użyć następującej składni,
FILE *fp;fp = fopen ("file_name", "mode");
W powyższej składni plik jest struktura danych zdefiniowana w standardowej bibliotece.
fopen to standardowa funkcja używana do otwierania pliku.
- Jeśli pliku nie ma w systemie, jest tworzony, a następnie otwierany.
- Jeśli plik jest już obecny w systemie, to jest otwierany bezpośrednio używając tej funkcji.
fp jest wskaźnikiem pliku, który wskazuje na plik typu.
Za każdym razem, gdy otwierasz lub tworzysz plik, musisz określić, co zamierzasz z nim zrobić. Plik w programowaniu „C” można utworzyć lub otworzyć w celu odczytu / zapisu. Tryb służy do określenia, czy chcesz otworzyć plik w którymkolwiek z poniższych celów. Poniżej przedstawiono różne typy trybów programowania w języku „C”, których można używać podczas pracy z plikiem.
Tryb pliku | Opis |
r | Otwórz plik do odczytu. Jeśli plik jest w trybie odczytu, żadne dane nie są usuwane, jeśli plik jest już obecny w systemie. |
w | Otwórz plik do zapisu. Jeśli plik jest w trybie do zapisu, tworzony jest nowy plik, jeśli plik w ogóle nie istnieje. Jeśli plik już istnieje w systemie, wszystkie dane w pliku są obcinane i otwierane do zapisu celów. |
a | Otwórz plik w trybie dołączania. Jeśli plik jest w trybie dołączania, to plik jest otwierany. Zawartość pliku się nie zmienia. |
r + | otwarte do czytania i pisania od początku |
w + | otwarte do czytania i pisania, nadpisywanie pliku |
a + | otwarte do czytania i pisania, dołączanie do pliku |
W podanej składni nazwa pliku i tryb są określane jako ciągi, dlatego zawsze muszą być ujęte w podwójne cudzysłowy.
Przykład:
#include <stdio.h>int main() {FILE *fp;fp = fopen ("data.txt", "w");}
Wynik:
Plik jest tworzony w tym samym folderze, w którym zapisałeś swój kod .
Możesz określić ścieżkę, w której chcesz utworzyć plik
#include <stdio.h>int main() {FILE *fp;fp = fopen ("D://data.txt", "w");}
Jak zamknąć plik
Zawsze należy zamykać plik po zakończeniu operacji na pliku. Oznacza to, że zawartość i linki do pliku zostały usunięte. Zapobiega to przypadkowemu uszkodzeniu pilnika.
„C” udostępnia funkcję fclose do wykonywania operacji zamykania pliku. Składnia fclose jest następująca:
fclose (file_pointer);
Przykład:
FILE *fp;fp = fopen ("data.txt", "r");fclose (fp);
The fclose funkcja przyjmuje wskaźnik pliku jako argument. Plik powiązany ze wskaźnikiem pliku jest następnie zamykany za pomocą funkcji fclose.Zwraca 0, jeśli zamknięcie zakończyło się pomyślnie i EOF (koniec pliku), jeśli wystąpił błąd podczas zamykania pliku.
Po zamknięciu pliku ten sam wskaźnik pliku może być również używany z innymi plikami.
W programowaniu „C” pliki są automatycznie zamykane po zakończeniu programu. Ręczne zamykanie pliku przez napisanie funkcji fclose jest dobrą praktyką programistyczną.
Zapis do pliku
W C, kiedy piszesz do pliku, znaki nowej linii „\ n” muszą być jawnie dodane.
Biblioteka stdio oferuje niezbędne funkcje do zapisu do pliku:
- fputc (char, file_pointer): Zapisuje znak w pliku wskazywanym przez file_pointer.
- fputs (str, file_pointer): Zapisuje ciąg do pliku wskazywanego przez file_pointer.
- fprintf (file_pointer, str, variable_lists): Drukuje ciąg do pliku wskazywanego przez file_pointer. Łańcuch może opcjonalnie zawierać specyfikatory formatu i listę zmiennych lista_zmiennych.
Poniższy program pokazuje, jak wykonać zapis do pliku:
fputc () Funkcja:
Wynik:
Powyższy program zapisuje pojedynczy znak do pliku fputc_test.txt, aż osiągnie następny symbol linii „\ n”, który oznacza, że zdanie zostało pomyślnie zapisane. Proces polega na pobraniu każdego znaku tablicy i zapisaniu go w pliku.
- W powyższym programie utworzyliśmy i otworzyliśmy plik zwany fputc_test.txt w trybie zapisu i zadeklaruj nasz ciąg znaków, który zostanie zapisany do pliku.
- Wykonujemy operację zapisu znak po znaku za pomocą pętli for i umieszczamy każdy znak w naszym pliku, aż „\ n „napotkano znak, a następnie plik jest zamykany za pomocą funkcji fclose.
Funkcja fputs ():
WYJŚCIE:
- W powyższym programie utworzyliśmy i otworzyliśmy plik o nazwie fputs_test.txt w trybie zapisu.
- Po wykonaniu operacji zapisu za pomocą funkcji fputs (), pisząc trzy różne ciągi znaków
- Następnie plik jest zamykany za pomocą funkcji fclose.
Funkcja fprintf ():
OUTPUT:
- W powyższym programie utworzyliśmy i otworzyliśmy plik o nazwie fprintf_test.txt w trybie zapisu.
- Po wykonaniu operacji zapisu za pomocą funkcji fprintf () poprzez napisanie ciągu znaków, plik jest zamykany za pomocą funkcji fclose.
Odczytywanie danych z pliku
Istnieją trzy różne funkcje przeznaczone do odczytu danych z pliku
- fgetc (file_pointer): Zwraca następny znak z pliku wskazywanego przez wskaźnik pliku. Po osiągnięciu końca pliku EOF jest odsyłany.
- fgets (buffer, n, file_pointer): Odczytuje n-1 znaków z pliku i zapisuje ciąg w buforze, w którym jako ostatni znak jest dodawany znak NULL „\ 0”.
- fscanf (file_pointer, conversion_specifiers, variable_adresses): służy do analizowania i analizowania danych. Odczytuje znaki z pliku i przypisuje dane wejściowe do listy wskaźników zmiennych adresy_zmienne za pomocą specyfikatorów konwersji. Należy pamiętać, że podobnie jak w przypadku scanf, fscanf przestaje odczytywać ciąg znaków po napotkaniu spacji lub nowej linii.
Poniższy program demonstruje odczyt z pliku fputs_test.txt przy użyciu fgets (), fscanf () i Funkcje fgetc () odpowiednio:
Wynik:
- W powyższym programie otworzyliśmy plik o nazwie „fprintf_test.txt”, który został wcześniej napisany przy użyciu funkcji fprintf () i zawiera ciąg znaków „Learning C with Guru99”. Czytamy to za pomocą funkcji fgets (), która czyta wiersz po wierszu, gdzie rozmiar bufora musi być wystarczający, aby obsłużyć całą linię.
- Ponownie otwieramy plik, aby zresetować plik wskaźnika tak, aby wskazywał na początek plik. Utwórz różne zmienne łańcuchowe, aby osobno obsługiwać każde słowo. Wydrukuj zmienne, aby zobaczyć ich zawartość. Funkcja fscanf () jest używana głównie do wyodrębniania i analizowania danych z pliku.
- Otwórz ponownie plik, aby zresetować plik wskaźnika, tak aby wskazywał początek pliku. Odczytaj dane i wydrukuj je z pliku znak po znaku za pomocą funkcji getc () aż do napotkania instrukcji EOF
- Po wykonaniu operacji odczytu pliku przy użyciu różnych wariantów, ponownie zamknęliśmy plik za pomocą funkcji fclose.
Interaktywny odczyt i zapis plików za pomocą getc i putc
To są najprostsze operacje na plikach. Getc oznacza get character, a putc oznacza put character. Te dwie funkcje są używane do obsługi tylko jednego znaku naraz.
Poniższy program demonstruje funkcje obsługi plików w programowaniu „C”:
Wynik:
- W powyższym programie utworzyli i otworzyli plik o nazwie demo w trybie zapisu.
- Po wykonaniu operacji zapisu plik jest zamykany za pomocą funkcji fclose.
- Ponownie otworzyliśmy plik który teraz zawiera dane w trybie odczytu. Pętla while będzie wykonywana aż do znalezienia eof. Po znalezieniu końca pliku operacja zostanie zakończona, a dane zostaną wyświetlone za pomocą funkcji printf.
- Po wykonaniu operacji odczytu plik jest ponownie zamykany za pomocą funkcji fclose.
Podsumowanie
- Plik to miejsce w pamięci, w którym przechowywane są dane.
- „C „Programowanie zapewnia różne funkcje do obsługi pliku.
- Mechanizm manipulowania plikami nazywa się zarządzaniem plikami.
- Plik musi zostać otwarty przed wykonaniem na nim operacji.
- Plik można otworzyć w trybie odczytu, zapisu lub dołączania.
- Funkcje Getc i putc służą do odczytu i zapisu pojedynczego znaku.
- funkcja fscanf () zezwala na odczytywanie i analizowanie danych z pliku
- Możemy odczytać (używając funkcji getc) cały plik, wykonując pętlę, aby pokryć cały plik aż do napotkania EOF
- Możemy zapisywać do pliku po utworzeniu jego nazwy przy pomocy funkcji fprintf () i musi on mieć nowy ine znak na końcu tekstu ciągu.