• Giga@hdv-tech.com
  • Całodobowy serwis internetowy:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube
    • Instagram

    C, Czytanie i pisanie dokumentów

    Czas postu: 11 sierpnia 2023 r

    Opisuje, w jaki sposób programista języka C tworzy, otwiera i zamyka plik tekstowy lub plik binarny.

    Plik oznacza serię bajtów, niezależnie od tego, czy jest to plik tekstowy, czy plik binarny, język C, nie tylko zapewnia dostęp do funkcji najwyższego poziomu, ale także zapewnia podstawowe wywołanie (OS) do przetwarzania plików na urządzeniu pamięci masowej .W tym rozdziale wyjaśniono ważne wezwania w zarządzaniu dokumentami.

    Otwórz plik

    Zwykle przy użyciu funkcji fopen() w celu utworzenia nowego pliku lub otwarcia istniejącego pliku wywołanie to inicjuje obiekt typu FILE, który zawiera wszystkie informacje niezbędne do sterowania przepływem.Oto prototyp tego wywołania funkcji:

    PLIK *fopen (const char * nazwa pliku, const char * tryb);

    Tutaj nazwa pliku jest ciągiem znaków, aby nazwać plik, wartość trybu dostępu może być jedną z następujących wartości:

    wzór

    opis

    r

    Otwórz istniejący plik tekstowy, który umożliwia jego odczytanie.

    w

    Otwórz plik tekstowy, który umożliwia zapis do pliku.Jeśli plik nie istnieje, tworzony jest nowy plik.Tutaj twój program zapisuje zawartość od początku pliku.Jeśli plik istnieje, zostanie obcięty do zerowej długości i ponownie zapisany.

    a

    Otwórz plik tekstowy i napisz do pliku w trybie dołączania.Jeśli plik nie istnieje, tworzony jest nowy plik.Tutaj twój program dołącza zawartość do plików, które już masz.

    r+

    Otwórz plik tekstowy, który umożliwia odczyt i zapis pliku.

    w+

    Otwórz plik tekstowy, który umożliwia odczyt i zapis pliku.Jeśli plik już istnieje, jest obcinany do zerowej długości, a jeśli plik nie istnieje, tworzony jest nowy plik.

    a+

    Otwórz plik tekstowy, który umożliwia odczyt i zapis pliku.Jeśli plik nie istnieje, tworzony jest nowy plik.Odczyt rozpoczyna się na początku pliku, a zapis odbywa się tylko w trybie dołączania.

    Jeśli przetwarzany jest plik binarny, użyj następującego trybu dostępu, aby zastąpić powyższy:

    „rb”, „wb”, „ab”, „rb+”, „r+b”, „wb+”, „w+b”, „ab+”, „a+b”

    zamknięty plik

    Aby zamknąć plik, użyj funkcji fclose().Prototyp funkcji wygląda następująco:

    int fclose (PLIK *fp);

    • Jeśli plik zostanie pomyślnie zamknięty, funkcja fclose() zwróci zero, a jeśli błąd zwróci EOF.Ta funkcja w rzeczywistości usuwa dane z bufora, zamyka plik i zwalnia całą pamięć używaną przez ten plik.EOF to stała zdefiniowana w pliku nagłówkowym stdio.h

    Standardowa biblioteka C udostępnia różne funkcje do odczytu i zapisu plików za pomocą znaków lub jako łańcuch o stałej długości.

    Napisz do pliku

    Oto najprostsze funkcje do zapisywania znaków w strumieniu:

    int fputc ( int c , PLIK *fp );

    Funkcja fputc () zapisuje wartość znakową parametru c do strumienia wyjściowego, na który wskazuje fp.Jeśli zapisy się powiodą, zwraca zapisany znak i EOF, jeśli wystąpi błąd.Możesz użyć następującej funkcji, aby zapisać ciąg znaków kończący się na null w strumieniu:

    int fputs ( const char *s , FILE *fp );

    Funkcja fputs () zapisuje ciąg s do strumienia wyjściowego, na który wskazuje fp.Jeśli zapis się powiedzie, zwraca wartość nieujemną i EOF, jeśli wystąpi błąd.Możesz także użyć funkcji int fprintf (PLIK * fp, const char * format,...) zapisuje ciąg znaków do pliku.Wypróbuj następujący przykład:

    Uwaga: Upewnij się, że masz dostępny katalog tmp, a jeśli nie istnieje, musisz go najpierw utworzyć na swoim komputerze.

    / tmp jest zwykle katalogiem tymczasowym w systemie Linux.Jeśli pracujesz w systemie Windows, musisz zmodyfikować go do istniejącego katalogu w środowisku lokalnym, takiego jak: C: \ tmp, D: \ tmp itp.

    żywy przykład

    #włączaćint main() {PLIK *fp = NULL;fp = fopen ("/tmp/test.txt", "w+");fprintf (fp , "To jest test dla fprintf...\n ");fputs("To jest test dla fputs...\n ", fp );fzamknij (fp);}

    Gdy powyższy kod jest kompilowany i wykonywany, tworzy nowy plik test.txt w katalogu / tmp.I zapisuje do dwóch wierszy przy użyciu dwóch różnych funkcji.Przeczytajmy ten plik dalej.

    Przeczytaj plik

    Poniżej przedstawiono najprostszą funkcję odczytu pojedynczego znaku z pliku:

    int fgetc (PLIK * fp);

    Funkcja fgetc() odczytuje znak z pliku wejściowego, na który wskazuje fp.Wartością zwracaną jest odczytany znak i EOF w przypadku wystąpienia błędu.Poniższa funkcja umożliwia odczytanie ciągu znaków ze strumienia:

    char *fgets (char *buf, int n, PLIK *fp);

    Funkcja fgets() odczytuje n-1 znaków ze strumienia wejściowego kierowanego przez fp.Kopiuje odczytany ciąg do bufora buf i dołącza znak null na końcu, aby zakończyć ciąg.

    Jeśli ta funkcja napotka znak łamanej linii '\ n' lub EOF końca pliku przed odczytaniem ostatniego znaku, to powróci tylko do przeczytanych znaków, w tym końca wiersza.Możesz także użyć funkcji int fscanf (FILE * fp, const char * format,...), aby odczytać ciąg znaków z pliku, ale przestaje ona czytać po napotkaniu pierwszej spacji i końca wiersza.

    żywy przykład

    #włączaćint main() {PLIK *fp = NULL;wzmocnienie char [255];fp = fopen("/tmp/test.txt", "r");fscanf (fp, "%s", buff);printf("1:%s\n", buff);fgets (buff, 255, (PLIK *)fp);printf("2:%s\n", buff);fgets (buff, 255, (PLIK *)fp);printf("3:%s\n", buff);fzamknij (fp);}

    Gdy powyższy kod jest kompilowany i wykonywany, odczytuje pliki utworzone w poprzedniej sekcji, dając następujące wyniki:

    1: To 2: testuje fprintf...

    3: To jest testowanie fputs...

    Po pierwsze, metoda fscanf() czyta tylko This .ponieważ napotyka spację z tyłu.Po drugie, wywołaj funkcję fgets(), aby odczytać pozostałą część do końca linii.Na koniec wywołaj funkcję fgets(), aby całkowicie odczytać drugi wiersz.

    Binarna funkcja we/wy

    Dla wejścia i wyjścia binarnego stosowane są następujące dwie funkcje:

    size_t fread (void *ptr , size_t size_of_elements , size_t liczba_elementów , FILE *a_file );size_t fwrite (const void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file );

    Obie funkcje są odczytywane i zapisywane dla bloków pamięci — zwykle tablic lub struktur.

    Powyżej około odczytu i zapisu pliku C należy do HDV Phoelectron Technology Ltd., technicznej operacji oprogramowania.A firma zajmująca się sprzętem sieciowym (takim jak: ACONU/ KomunikacjaONU/ inteligentnyONU/ błonnikONUitp.) zgromadził potężny zespół oprogramowania, dla każdego klienta dostosuj ekskluzywne wymagania, które tego potrzebują, a także pozwól naszym produktom być bardziej inteligentnymi i zaawansowanymi.



    web聊天