• Giga@hdv-tech.com
  • Servizo en liña 24 horas:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, Lectura e escritura de documentos

    Hora de publicación: 11-Ago-2023

    Describe como o programador C crea, abre e pecha un ficheiro de texto ou un ficheiro binario.

    Un ficheiro, quere dicir unha serie de bytes, xa sexa un ficheiro de texto ou un ficheiro binario, Linguaxe C, non só proporciona o acceso ás funcións de nivel superior, senón que tamén proporciona a chamada subxacente (SO) para procesar ficheiros no dispositivo de almacenamento. .Neste capítulo explicaranse as convocatorias importantes na xestión documental.

    Arquivo aberto

    Normalmente usando a función fopen () para crear un ficheiro novo ou abrir un ficheiro existente, esta chamada inicializa un obxecto do tipo FILE que contén toda a información necesaria para controlar o fluxo.Aquí está o prototipo desta chamada de función:

    FICHEIRO *fopen (const char * nome do ficheiro, const char * modo);

    Aquí nome de ficheiro é unha cadea para nomear un ficheiro, o valor do modo de acceso pode ser un dos seguintes valores:

    patrón

    descrición

    r

    Abre un ficheiro de texto existente que permita lelo.

    w

    Abre un ficheiro de texto que permita escribir no ficheiro.Se o ficheiro non existe, créase un novo ficheiro.Aquí, o seu programa escribe o contido desde o inicio do ficheiro.Se o ficheiro existe, truncarase a lonxitude cero e volverase escribir.

    a

    Abre un ficheiro de texto e escribe no ficheiro nun modo anexo.Se o ficheiro non existe, créase un novo ficheiro.Aquí, o teu programa engade contido aos ficheiros que xa tes.

    r+

    Abre un ficheiro de texto que che permita ler e escribir o ficheiro.

    w+

    Abre un ficheiro de texto que che permita ler e escribir o ficheiro.Se o ficheiro xa existe, o ficheiro truncase a lonxitude cero e, se o ficheiro non existe, créase un novo ficheiro.

    a+

    Abre un ficheiro de texto que che permita ler e escribir o ficheiro.Se o ficheiro non existe, créase un novo ficheiro.A lectura comeza ao comezo do ficheiro, e a escritura só está en modo anexo.

    Se se procesa un ficheiro binario, use o seguinte modo de acceso para substituír o anterior:

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

    arquivo pechado

    Para pechar o ficheiro, use a función fclose().O prototipo da función é o seguinte:

    int fclose ( FICHEIRO *fp );

    • Se o ficheiro se pecha con éxito, a función fclose() devolve cero, e se o erro devolve EOF.Esta función, de feito, elimina os datos do búfer, pecha o ficheiro e libera toda a memoria utilizada para ese ficheiro.EOF é unha constante definida no ficheiro de cabeceira stdio.h

    A biblioteca estándar C ofrece varias funcións para ler e escribir ficheiros por caracteres ou como unha cadea de lonxitude fixa.

    Escribe no ficheiro

    Aquí están as funcións máis sinxelas para escribir caracteres no fluxo:

    int fputc ( int c , FICHEIRO *fp );

    A función fputc () escribe o valor do carácter do parámetro c no fluxo de saída ao que apunta o fp.Se as escrituras teñen éxito, devolve o carácter escrito e o EOF se se produce un erro.Podes usar a seguinte función para escribir unha cadea que remate cun nulo no fluxo:

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

    A función fputs () escribe a cadea s no fluxo de saída onde apunta o fp.Se as escrituras teñen éxito, devolve un valor non negativo e o EOF se se produce un erro.Tamén pode usar a función de int fprintf (FILE * fp, const char * format,...) escribe unha cadea no ficheiro.Proba o seguinte exemplo:

    Nota: asegúrate de ter un directorio tmp dispoñible e, se non existe, primeiro debes crealo no teu ordenador.

    /tmp adoita ser un directorio temporal no sistema Linux.Se executas no sistema Windows, necesitas modificalo a un directorio existente no ambiente local, como: C:\tmp, D:\tmp, etc.

    exemplo vivo

    #incluírint main () { FICHEIRO *fp = NULL ;fp = fopen ("/tmp/test.txt", "w+");fprintf (fp , "Isto está a probar fprintf...\n ");fputs ("Este é a proba de fputs...\n ", fp );fclose (fp );}

    Cando se compila e executa o código anterior, crea un novo ficheiro test.txt no directorio /tmp.E escribe en dúas liñas usando dúas funcións diferentes.Imos ler este ficheiro a continuación.

    Le o ficheiro

    A seguinte é a función máis sinxela para ler un só carácter dun ficheiro:

    int fgetc ( FICHEIRO * fp );

    A función fgetc () le un carácter do ficheiro de entrada ao que apunta o fp.O valor de retorno é o carácter lido e o EOF se se produce un erro.A seguinte función permítelle ler unha cadea dun fluxo:

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

    A función fgets () le n-1 caracteres do fluxo de entrada dirixido por fp.Copia a cadea de lectura no búfer e engade un carácter nulo ao final para finalizar a cadea.

    Se esta función atopa un carácter de liña rota '\ n' ou o EOF do final do ficheiro antes de ler o último carácter, só se volve aos caracteres lidos, incluídos os saltos de liña.Tamén pode usar a función int fscanf (FILE * fp, const char * format,...) para ler a cadea do ficheiro, pero deixa de ler cando se atopa o primeiro espazo e salto de liña.

    exemplo vivo

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

    Cando se compila e executa o código anterior, le os ficheiros creados na sección anterior, producindo os seguintes resultados:

    1: Este 2: está a probar fprintf...

    3: Esta é a proba de fputs...

    En primeiro lugar, o método de fscanf() só le Isto .porque atopa un espazo na parte traseira.En segundo lugar, chame a functon fgets () para ler a parte restante ata o final da liña.Finalmente, chame a fgets () para ler completamente a segunda fila.

    Función binaria de E/S

    As dúas funcións seguintes úsanse para a entrada e saída binarias:

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

    Ambas funcións son de lectura e escritura para bloques de almacenamento, normalmente matrices ou estruturas.

    Enriba sobre a lectura e escritura de ficheiros C pertence a HDV Phoelectron Technology Ltd., unha operación técnica de software.E a empresa de equipos relacionados coa rede (como: ACONU/ comunicaciónONU/ intelixenteONU/ fibraONU, etc.) reuniu un equipo de software poderoso, para que cada cliente personalice as demandas exclusivas que o necesite, tamén deixe que os nosos produtos sexan máis intelixentes e avanzados.



    web聊天