• Giga@hdv-tech.com
  • Servicio en línea las 24 horas:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, lectura y escritura de documentos

    Hora de publicación: 11 de agosto de 2023

    Describe cómo el programador de C crea, abre y cierra un archivo de texto o un archivo binario.

    Un archivo, significa una serie de bytes, ya sea un archivo de texto o un archivo binario, el lenguaje C no solo proporciona acceso a las funciones de nivel superior, sino que también proporciona la llamada subyacente (SO) para procesar archivos en el dispositivo de almacenamiento. . Este capítulo explicará las llamadas importantes en la gestión de documentos.

    archivo abierto

    Generalmente usando la función fopen () para crear un nuevo archivo o abrir un archivo existente, esta llamada inicializa un objeto del tipo ARCHIVO que contiene toda la información necesaria para controlar el flujo. Aquí está el prototipo de esta llamada a función:

    ARCHIVO *fopen (const char * nombre de archivo, const char * modo);

    Aquí nombre de archivo es una cadena para nombrar un archivo, el valor del modo de acceso puede ser uno de los siguientes valores:

    patrón

    descripción

    r

    Abra un archivo de texto existente que permita su lectura.

    w

    Abra un archivo de texto que permita escribir en el archivo. Si el archivo no existe, se crea un archivo nuevo. Aquí, su programa escribe el contenido desde el principio del archivo. Si el archivo existe, se truncará a longitud cero y se reescribirá.

    a

    Abra un archivo de texto y escriba en el archivo en modo de adición. Si el archivo no existe, se crea un archivo nuevo. Aquí, su programa agrega contenido a los archivos que ya tiene.

    r+

    Abra un archivo de texto que le permita leer y escribir el archivo.

    w+

    Abra un archivo de texto que le permita leer y escribir el archivo. Si el archivo ya existe, se trunca a longitud cero y, si no existe, se crea un archivo nuevo.

    a+

    Abra un archivo de texto que le permita leer y escribir el archivo. Si el archivo no existe, se crea un archivo nuevo. La lectura comienza al principio del archivo y la escritura se realiza solo en modo agregar.

    Si procesa un archivo binario, utilice el siguiente modo de acceso para reemplazar el anterior:

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

    expediente cerrado

    Para cerrar el archivo, utilice la función fclose(). El prototipo de la función es el siguiente:

    int fclose ( ARCHIVO *fp );

    • Si el archivo se cierra correctamente, la función fclose() devuelve cero, y si el error devuelve EOF. De hecho, esta función elimina los datos del búfer, cierra el archivo y libera toda la memoria utilizada para ese archivo. EOF es una constante definida en el archivo de encabezado stdio.h

    La biblioteca estándar de C proporciona varias funciones para leer y escribir archivos por caracteres o como una cadena de longitud fija.

    Escribir en el archivo

    Estas son las funciones más simples para escribir caracteres en la secuencia:

    int fputc (int c, ARCHIVO *fp);

    La función fputc () escribe el valor del carácter del parámetro c en el flujo de salida al que apunta el fp. Si las escrituras son exitosas, devuelve el carácter escrito y el EOF si ocurre un error. Puede utilizar la siguiente función para escribir una cadena que termine con un valor nulo en la secuencia:

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

    La función fputs () escribe la cadena s en el flujo de salida al que apunta fp. Si las escrituras se realizan correctamente, devuelve un valor no negativo y el EOF si se produce un error. También puede utilizar la función de int fprintf (FILE * fp, const char * format,...) escribe una cadena en el archivo. Pruebe el siguiente ejemplo:

    Nota: asegúrese de tener un directorio tmp disponible y, si no existe, primero debe crearlo en su computadora.

    /tmp suele ser un directorio temporal en el sistema Linux. Si lo ejecuta en el sistema Windows, debe modificarlo a un directorio existente en el entorno local, como: C: \ tmp, D: \ tmp, etc.

    ejemplo vivo

    #incluir int principal () { ARCHIVO *fp = NULL; fp = fopen ("/tmp/test.txt", "w+"); fprintf (fp , "Esto es una prueba para fprintf...\n "); fputs ("Esto es una prueba de fputs...\n", fp); cerrar (fp); }

    Cuando el código anterior se compila y ejecuta, crea un nuevo archivo test.txt en el directorio /tmp. Y escribe en dos líneas usando dos funciones diferentes. Leamos este archivo a continuación.

    leer el archivo

    La siguiente es la función más sencilla para leer un solo carácter de un archivo:

    int fgetc (ARCHIVO * fp);

    La función fgetc() lee un carácter del archivo de entrada al que apunta el fp. El valor de retorno es el carácter leído y el EOF si ocurre un error. La siguiente función le permite leer una cadena de una secuencia:

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

    La función fgets () lee n-1 caracteres del flujo de entrada dirigido por fp. Copia la cadena leída en el buffer buf y agrega un carácter nulo al final para terminar la cadena.

    Si esta función encuentra un carácter de línea discontinua '\ n' o el EOF del final del archivo antes de leer el último carácter, solo regresa a los caracteres leídos, incluidos los saltos de línea. También puede usar la función int fscanf (FILE * fp, const char * format,...) para leer la cadena del archivo, pero deja de leer cuando encuentra el primer espacio y salto de línea.

    ejemplo vivo

    #incluir int principal () { ARCHIVO *fp = NULL; mejora de carbón [255]; fp = fopen ("/tmp/test.txt", "r "); fscanf (fp, "%s", mejora); printf ("1: %s \n ", mejora); fgets (buff, 255, (ARCHIVO *)fp); printf ("2: %s \n ", mejora); fgets (buff, 255, (ARCHIVO *)fp); printf ("3: %s \n ", mejora); cerrar (fp); }

    Cuando el código anterior se compila y ejecuta, lee los archivos creados en la sección anterior, produciendo los siguientes resultados:

    1: Este 2: está probando fprintf...

    3: Esto es una prueba de salidas...

    Primero, el método de fscanf() solo lee Esto porque encuentra un espacio en la parte posterior. En segundo lugar, llame a la función fgets () para leer la parte restante hasta el final de la línea. Finalmente, llame a fgets () para leer la segunda fila por completo.

    Función de E/S binaria

    Las dos funciones siguientes se utilizan para la entrada y salida binaria:

    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 funciones son de lectura y escritura para bloques de almacenamiento, generalmente matrices o estructuras.

    Lo anterior sobre la lectura y escritura de archivos C pertenece a HDV Phoelectron Technology Ltd., una operación técnica de software. Y la empresa de equipos relacionados con la red (como: ACONU/ comunicaciónONU/ inteligenteONU/ fibraONU, etc.) ha reunido un poderoso equipo de software, para que cada cliente personalice las demandas exclusivas que lo necesitan, y también haga que nuestros productos sean más inteligentes y avanzados.



    web聊天