• Giga@hdv-tech.com
  • 24-timers online service:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, dokumentlæsning og skrivning

    Indlægstid: Aug-11-2023

    Beskriver, hvordan C-programmøren opretter, åbner og lukker en tekstfil eller en binær fil.

    En fil, betyder en række bytes, uanset om det er en tekstfil eller en binær fil, C Language, giver ikke kun adgang til funktionerne på øverste niveau, men giver også det underliggende (OS) kald til at behandle filer på lagerenheden . Dette kapitel vil forklare de vigtige opkald i dokumenthåndtering.

    åben-fil

    Normalt ved at bruge fopen ()-funktionen til at oprette en ny fil eller åbne en eksisterende fil, initialiserer dette kald et objekt af typen FILE, der indeholder al den nødvendige information til at kontrollere flowet. Her er prototypen af ​​dette funktionskald:

    FIL *fopen ( const char * filnavn , const char * mode );

    Her er filnavn en streng for at navngive en fil, værdien af ​​adgangstilstanden kan være en af ​​følgende værdier:

    mønster

    beskrivelse

    r

    Åbn en eksisterende tekstfil, der gør det muligt at læse den.

    w

    Åbn en tekstfil, der gør det muligt at skrive til filen. Hvis filen ikke findes, oprettes en ny fil. Her skriver dit program indholdet fra begyndelsen af ​​filen. Hvis filen eksisterer, vil den blive afkortet til nul længde og omskrevet.

    a

    Åbn en tekstfil, og skriv til filen i en tilføjelsestilstand. Hvis filen ikke findes, oprettes en ny fil. Her tilføjer dit program indhold til de filer, du allerede har.

    r+

    Åbn en tekstfil, der giver dig mulighed for at læse og skrive filen.

    w+

    Åbn en tekstfil, der giver dig mulighed for at læse og skrive filen. Hvis filen allerede eksisterer, afkortes filen til nul længde, og hvis filen ikke findes, oprettes en ny fil.

    a+

    Åbn en tekstfil, der giver dig mulighed for at læse og skrive filen. Hvis filen ikke findes, oprettes en ny fil. Læsningen starter i begyndelsen af ​​filen, og skrivningen er kun i tilføjelsestilstand.

    Hvis en binær fil behandles, skal du bruge følgende adgangstilstand til at erstatte ovenstående:

    "rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

    lukket fil

    For at lukke filen skal du bruge fclose()-funktionen. Prototypen af ​​funktionen er som følger:

    int fclose (FIL *fp);

    • Hvis filen lukkes korrekt, returnerer fclose()-funktionen nul, og hvis fejlen returnerer EOF. Denne funktion fjerner faktisk dataene fra bufferen, lukker filen og frigiver al den hukommelse, der bruges til den pågældende fil. EOF er en konstant defineret i header-filen stdio.h

    C-standardbiblioteket giver forskellige funktioner til at læse og skrive filer efter tegn eller som en streng med fast længde.

    Skriv til filen

    Her er de enkleste funktioner til at skrive tegn til strømmen:

    int fputc (int c, FIL *fp);

    Funktionen fputc () skriver tegnværdien af ​​parameteren c ind i outputstrømmen, som fp peger på. Hvis skrivningen lykkes, returnerer den det skrevne tegn og EOF, hvis der opstår en fejl. Du kan bruge følgende funktion til at skrive en streng, der slutter med et nul, til strømmen:

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

    Funktionen fputs () skriver strengen s til outputstrømmen, hvor fp peger på. Hvis skrivningen lykkes, returnerer den en ikke-negativ værdi og EOF, hvis der opstår en fejl. Du kan også bruge funktionen int fprintf (FILE * fp, const char * format,...) skriver en streng til filen. Prøv følgende eksempel:

    Bemærk: Sørg for, at du har en tilgængelig tmp-mappe, og hvis den ikke findes, skal du først oprette den på din computer.

    / tmp er normalt en midlertidig mappe på Linux-systemet. Hvis du kører på Windows-systemet, skal du ændre det til en eksisterende mappe i det lokale miljø, såsom: C: \ tmp, D: \ tmp, osv.

    levende eksempel

    #omfatte int main () { FILE *fp = NULL; fp = fopen ("/tmp/test.txt ", "w+"); fprintf (fp , "Dette tester for fprintf...\n "); fputs ("Dette tester for fputs...\n ", fp ); fclose (fp ); }

    Når ovenstående kode er kompileret og eksekveret, opretter den en ny fil test.txt i / tmp-mappen. Og skriver til to linjer ved hjælp af to forskellige funktioner. Lad os læse denne fil næste gang.

    Læs filen

    Følgende er den enkleste funktion til at læse et enkelt tegn fra en fil:

    int fgetc ( FILE * fp );

    Funktionen fgetc () læser et tegn fra inputfilen, som fp peger på. Returværdien er læsetegnet og EOF, hvis der opstår en fejl. Følgende funktion giver dig mulighed for at læse en streng fra en stream:

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

    Funktionen fgets () læser n-1 tegn fra inputstrømmen dirigeret af fp. Den kopierer læsestrengen til bufferbuffet og tilføjer et null-tegn i slutningen for at afslutte strengen.

    Hvis denne funktion støder på et brudt linjetegn '\ n' eller EOF i slutningen af ​​filen før læsning af det sidste tegn, returneres kun til de læste tegn, inklusive linjeskift. Du kan også bruge funktionen int fscanf (FILE * fp, const char * format,...) til at læse strengen fra filen, men den stopper med at læse, når den støder på det første mellemrum og linjeskift.

    levende eksempel

    #omfatte int main () { FILE *fp = NULL; char buff [255]; fp = fopen ("/tmp/test.txt ", "r "); fscanf (fp, "%s", buff); printf ("1: %s \n ", buff ); fgets (buff , 255, (FIL *)fp ); printf ("2: %s \n ", buff ); fgets (buff , 255, (FIL *)fp ); printf ("3: %s \n ", buff ); fluk (fp ); }

    Når ovenstående kode er kompileret og eksekveret, læser den filerne oprettet i det foregående afsnit, hvilket giver følgende resultater:

    1: Denne 2: tester for fprintf...

    3: Dette tester for fputs...

    For det første læser metoden til fscanf() kun This .fordi den støder på et mellemrum bagpå. For det andet skal du kalde functon fgets () for at læse den resterende del indtil slutningen af ​​linjen. Til sidst skal du kalde fgets () for at læse den anden række fuldstændigt.

    Binær I/O-funktion

    Følgende to funktioner bruges til det binære input og output:

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

    Begge funktioner læses og skrives til lagerblokke - normalt arrays eller strukturer.

    Ovenstående om C fillæsning og skrivning tilhører HDV Phoelectron Technology Ltd., en softwareteknisk operation. Og virksomheden for netværksrelateret udstyr (såsom: ACONU/ kommunikationONU/ intelligentONU/ fiberONU, etc.) har samlet et stærkt software-team, for hver kunde tilpasse de eksklusive krav, der har brug for det, også lade vores produkter mere intelligente og avancerede.



    web聊天