• Giga@hdv-tech.com
  • Servei en línia 24 hores:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, Lectura i escriptura de documents

    Hora de publicació: 11-agost-2023

    Descriu com el programador C crea, obre i tanca un fitxer de text o un fitxer binari.

    Un fitxer, significa una sèrie de bytes, ja sigui un fitxer de text o un fitxer binari, Llenguatge C, no només proporciona l'accés a les funcions de nivell superior, sinó que també proporciona la crida subjacent (SO) per processar fitxers al dispositiu d'emmagatzematge. . En aquest capítol s'explicaran les convocatòries importants de la gestió documental.

    fitxer obert

    Normalment utilitzant la funció fopen () per crear un fitxer nou o obrir un fitxer existent, aquesta crida inicialitza un objecte del tipus FILE que conté tota la informació necessària per controlar el flux. Aquí teniu el prototip d'aquesta crida de funció:

    FITXER *fopen (const char * nom de fitxer, const char * mode);

    Aquí nom de fitxer és una cadena per anomenar un fitxer, el valor del mode d'accés pot ser un dels valors següents:

    patró

    descripció

    r

    Obriu un fitxer de text existent que permeti llegir-lo.

    w

    Obre un fitxer de text que permet escriure al fitxer. Si el fitxer no existeix, es crea un fitxer nou. Aquí, el vostre programa escriu el contingut des del principi del fitxer. Si el fitxer existeix, es truncarà a longitud zero i es tornarà a escriure.

    a

    Obriu un fitxer de text i escriu-hi en un mode d'afegit. Si el fitxer no existeix, es crea un fitxer nou. Aquí, el vostre programa afegeix contingut als fitxers que ja teniu.

    r+

    Obriu un fitxer de text que us permeti llegir i escriure el fitxer.

    w+

    Obriu un fitxer de text que us permeti llegir i escriure el fitxer. Si el fitxer ja existeix, el fitxer es trunca a la longitud zero i, si el fitxer no existeix, es crea un fitxer nou.

    a+

    Obriu un fitxer de text que us permeti llegir i escriure el fitxer. Si el fitxer no existeix, es crea un fitxer nou. La lectura comença al principi del fitxer i l'escriptura només està en mode d'afegir.

    Si es processa un fitxer binari, utilitzeu el mode d'accés següent per substituir l'anterior:

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

    fitxer tancat

    Per tancar el fitxer, utilitzeu la funció fclose(). El prototip de la funció és el següent:

    int fclose ( FITXER *fp );

    • Si el fitxer es tanca correctament, la funció fclose() retorna zero, i si l'error retorna EOF. Aquesta funció, de fet, elimina les dades de la memòria intermèdia, tanca el fitxer i allibera tota la memòria utilitzada per a aquest fitxer. EOF és una constant definida al fitxer de capçalera stdio.h

    La biblioteca estàndard C ofereix diverses funcions per llegir i escriure fitxers per caràcters o com a cadena de longitud fixa.

    Escriu a l'arxiu

    Aquestes són les funcions més senzilles per escriure caràcters al flux:

    int fputc ( int c , FITXER *fp );

    La funció fputc () escriu el valor del caràcter del paràmetre c al flux de sortida al qual apunta l'fp. Si les escriptures tenen èxit, retorna el caràcter escrit i l'EOF si es produeix un error. Podeu utilitzar la funció següent per escriure una cadena que acabi amb un null al flux:

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

    La funció fputs () escriu la cadena s al flux de sortida on apunta l'fp. Si les escriptures tenen èxit, retorna un valor no negatiu i l'EOF si es produeix un error. També podeu utilitzar la funció de int fprintf (FILE * fp, const char * format,...) escriu una cadena al fitxer. Proveu l'exemple següent:

    Nota: Assegureu-vos que teniu un directori tmp disponible i, si no existeix, primer haureu de crear-lo al vostre ordinador.

    /tmp sol ser un directori temporal del sistema Linux. Si executeu el sistema Windows, haureu de modificar-lo a un directori existent a l'entorn local, com ara: C:\tmp, D:\tmp, etc.

    exemple viu

    #inclou int main () { FILE *fp = NULL ; fp = fopen ("/tmp/test.txt", "w+"); fprintf (fp , "Això està provant per fprintf...\n "); fputs ("Això està provant els fputs...\n ", fp ); fclose (fp); }

    Quan es compila i s'executa el codi anterior, es crea un nou fitxer test.txt al directori /tmp. I escriu a dues línies utilitzant dues funcions diferents. A continuació, llegim aquest fitxer.

    Llegeix el fitxer

    La següent és la funció més senzilla per llegir un sol caràcter d'un fitxer:

    int fgetc ( FITXER * fp );

    La funció fgetc () llegeix un caràcter del fitxer d'entrada al qual apunta l'fp. El valor de retorn és el caràcter llegit i l'EOF si es produeix un error. La funció següent us permet llegir una cadena d'un flux:

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

    La funció fgets () llegeix n-1 caràcters del flux d'entrada dirigit per fp. Copia la cadena de lectura al buffer buffer i afegeix un caràcter nul al final per acabar la cadena.

    Si aquesta funció troba un caràcter de línia trencada '\ n' o l'EOF del final del fitxer abans de llegir l'últim caràcter, només es tornarà als caràcters llegits, inclosos els salts de línia. També podeu utilitzar la funció int fscanf (FILE * fp, const char * format,...) per llegir la cadena del fitxer, però deixa de llegir quan trobeu el primer espai i el primer salt de línia.

    exemple viu

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

    Quan el codi anterior es compila i s'executa, llegeix els fitxers creats a la secció anterior, produint els següents resultats:

    1: Aquest 2: està provant per fprintf...

    3: Això és prova de fputs...

    Primer, el mètode de fscanf() només llegeix This .perquè troba un espai a la part posterior. En segon lloc, crida a la funció fgets () per llegir la part restant fins al final de la línia. Finalment, crida a fgets () per llegir la segona fila completament.

    Funció d'E/S binària

    S'utilitzen les dues funcions següents per a l'entrada i sortida binària:

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

    Ambdues funcions es llegeixen i escriuen per a blocs d'emmagatzematge, normalment matrius o estructures.

    Més amunt, la lectura i escriptura de fitxers C pertany a HDV Phoelectron Technology Ltd., una operació tècnica de programari. I l'empresa d'equips relacionats amb la xarxa (com ara: ACONU/ comunicacióONU/ intel·ligentONU/ fibraONU, etc.) ha reunit un potent equip de programari, perquè cada client personalitzi les demandes exclusives que ho necessiti, també permeti que els nostres productes siguin més intel·ligents i avançats.



    web聊天