• Giga@hdv-tech.com
  • 24h onlinetjänst:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, Läsa och skriva dokument

    Posttid: Aug-11-2023

    Beskriver hur C-programmeraren skapar, öppnar och stänger en textfil eller en binär fil.

    En fil, betyder en serie byte, oavsett om det är en textfil eller en binär fil, C Language, ger inte bara tillgång till funktionerna på översta nivån, utan tillhandahåller också det underliggande (OS) anropet att bearbeta filer på lagringsenheten . Det här kapitlet kommer att förklara de viktiga samtalen inom dokumenthantering.

    öppen fil

    Vanligtvis genom att använda fopen ()-funktionen för att skapa en ny fil eller öppna en befintlig fil, initierar detta anrop ett objekt av typen FILE som innehåller all nödvändig information för att styra flödet. Här är prototypen för detta funktionsanrop:

    FIL *fopen ( const char * filnamn , const char * läge );

    Här är filnamn en sträng för att namnge en fil, värdet för åtkomstläget kan vara ett av följande värden:

    mönster

    beskrivning

    r

    Öppna en befintlig textfil som gör att den kan läsas.

    w

    Öppna en textfil som gör det möjligt att skriva till filen. Om filen inte finns skapas en ny fil. Här skriver ditt program innehållet från början av filen. Om filen finns kommer den att trunkeras till noll och skrivas om.

    a

    Öppna en textfil och skriv till filen i ett tilläggsläge. Om filen inte finns skapas en ny fil. Här lägger ditt program till innehåll till de filer du redan har.

    r+

    Öppna en textfil som låter dig läsa och skriva filen.

    w+

    Öppna en textfil som låter dig läsa och skriva filen. Om filen redan finns, trunkeras filen till noll, och om filen inte finns skapas en ny fil.

    a+

    Öppna en textfil som låter dig läsa och skriva filen. Om filen inte finns skapas en ny fil. Läsningen börjar i början av filen, och skrivningen är bara i tilläggsläge.

    Om bearbetad binär fil, använd följande åtkomstläge för att ersätta ovanstående:

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

    stängd fil

    För att stänga filen, använd fclose()-funktionen. Prototypen av funktionen är följande:

    int fclose (FIL *fp);

    • Om filen stängs framgångsrikt returnerar funktionen fclose() noll, och om felet returnerar EOF. Denna funktion tar i själva verket bort data från bufferten, stänger filen och frigör allt minne som används för den filen. EOF är en konstant definierad i rubrikfilen stdio.h

    C-standardbiblioteket tillhandahåller olika funktioner för att läsa och skriva filer med tecken eller som en sträng med fast längd.

    Skriv till filen

    Här är de enklaste funktionerna för att skriva tecken till strömmen:

    int fputc (int c, FIL *fp);

    Funktionen fputc () skriver teckenvärdet för parametern c i utgångsströmmen som fp pekar på. Om skrivningarna lyckas returneras det skrivna tecknet och EOF om ett fel uppstår. Du kan använda följande funktion för att skriva en sträng som slutar med en noll till strömmen:

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

    Funktionen fputs () skriver strängen s till utgångsströmmen där fp pekar på. Om skrivningen lyckas, returnerar den ett icke-negativt värde och EOF om ett fel uppstår. Du kan också använda funktionen för int fprintf (FILE * fp, const char * format,...) skriver en sträng till filen. Prova följande exempel:

    Obs: Se till att du har en tillgänglig tmp-katalog, och om den inte finns måste du skapa den på din dator först.

    / tmp är vanligtvis en tillfällig katalog på Linux-systemet. Om du kör på Windows-systemet måste du ändra den till en befintlig katalog i den lokala miljön, till exempel: C: \ tmp, D: \ tmp, etc.

    levande exempel

    #omfatta int main () { FILE *fp = NULL ; fp = fopen ("/tmp/test.txt ", "w+"); fprintf (fp , "Detta testar för fprintf...\n "); fputs ("Detta testar för fputs...\n ", fp ); fclose (fp ); }

    När ovanstående kod kompileras och körs skapar den en ny fil test.txt i /tmp-katalogen. Och skriver på två rader med två olika funktioner. Låt oss läsa den här filen härnäst.

    Läs filen

    Följande är den enklaste funktionen för att läsa ett enstaka tecken från en fil:

    int fgetc ( FILE * fp );

    Funktionen fgetc () läser ett tecken från indatafilen som fp pekar på. Returvärdet är lästecknet och EOF om ett fel uppstår. Följande funktion låter dig läsa en sträng från en ström:

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

    Funktionen fgets () läser n-1 tecken från inmatningsströmmen riktad av fp. Den kopierar lässträngen till buffertbufferten och lägger till ett nolltecken i slutet för att avsluta strängen.

    Om den här funktionen stöter på ett streckat linjetecken '\ n' eller EOF i slutet av filen innan det sista tecknet läses, återgår endast till de lästa tecknen, inklusive radbrytningar. Du kan också använda funktionen int fscanf (FILE * fp, const char * format,...) för att läsa strängen från filen, men den slutar läsa när den stöter på det första mellanslag och radbrytning.

    levande exempel

    #omfatta int main () { FILE *fp = NULL ; röding 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 ); fclose (fp ); }

    När ovanstående kod kompileras och körs läser den filerna som skapats i föregående avsnitt, vilket ger följande resultat:

    1: Denna 2: testar för fprintf...

    3: Detta testar för fputs...

    För det första läser metoden fscanf() bara This .eftersom den stöter på ett mellanslag på baksidan. För det andra, anrop functon fgets () för att läsa den återstående delen till slutet av raden. Till sist, anrop fgets () för att läsa den andra raden helt.

    Binär I/O-funktion

    Följande två funktioner används för den binära ingången och utgången:

    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 );

    Båda funktionerna läser och skriver för lagringsblock - vanligtvis arrayer eller strukturer.

    Ovan om C filläsning och skrivning tillhör HDV Phoelectron Technology Ltd., en mjukvaruteknisk verksamhet. Och företaget för nätverksrelaterad utrustning (som: ACONU/ kommunikationONU/ intelligentONU/ fiberONU, etc.) har samlat ett kraftfullt mjukvaruteam, för varje kund anpassa de exklusiva krav som behöver det, även låta våra produkter mer intelligenta och avancerade.



    webb聊天