Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

E/S de archivos C:crear, abrir, leer, escribir y cerrar un archivo

C Gestión de archivos

Un archivo se puede utilizar para almacenar un gran volumen de datos persistentes. Como muchos otros idiomas, 'C' proporciona las siguientes funciones de administración de archivos,

  1. Creación de un archivo
  2. Abrir un archivo
  3. Leer un archivo
  4. Escribir en un archivo
  5. Cerrar un archivo

Las siguientes son las funciones de administración de archivos más importantes disponibles en 'C,'

función propósito fopen () Crear un archivo o abrir un archivo existentefclose () Cerrar un archivofprintf () Escribir un bloque de datos en un archivo fscanf () Lectura de un bloque de datos de un archivo getc () Lee un solo carácter de un archivo putc () Escribe un solo carácter en un archivo getw () Lee un entero de un archivo putw () Escribir un número entero en un archivo fseek () Establece la posición de un puntero de archivo en una ubicación específicaftell () Devuelve la posición actual de un puntero de archivo rebobinar () Establece el puntero de archivo al principio de un archivo


En este tutorial, aprenderá-

Cómo crear un archivo

Siempre que desee trabajar con un archivo, el primer paso es crear un archivo. Un archivo no es más que espacio en una memoria donde se almacenan datos.

Para crear un archivo en un programa 'C' se utiliza la siguiente sintaxis,

FILE *fp;
fp = fopen ("file_name", "mode");

En la sintaxis anterior, el archivo es una estructura de datos que se define en la biblioteca estándar.

fopen es una función estándar que se utiliza para abrir un archivo.

fp es un puntero de archivo que apunta al tipo de archivo.

Cada vez que abre o crea un archivo, debe especificar qué va a hacer con el archivo. Se puede crear o abrir un archivo en programación 'C' para fines de lectura/escritura. Se utiliza un modo para especificar si desea abrir un archivo para cualquiera de los propósitos que se indican a continuación. Los siguientes son los diferentes tipos de modos en la programación 'C' que se pueden usar mientras se trabaja con un archivo.

Modo de archivo Descripción rAbrir un archivo para lectura. Si un archivo está en modo de lectura, no se elimina ningún dato si ya hay un archivo presente en un sistema. wAbra un archivo para escritura. Si un archivo está en modo de escritura, se crea un nuevo archivo si no existe ningún archivo. Si un archivo ya está presente en un sistema, todos los datos dentro del archivo se truncan y se abre para fines de escritura.a Abra un archivo en
modo agregar. Si un archivo está en modo de adición, se abre. El contenido del archivo no cambia.r+ abrir para leer y escribir desde el principiow+abrir para leer y escribir, sobrescribir un archivoa+abrir para leer y escribir, agregar al archivo

En la sintaxis dada, el nombre de archivo y el modo se especifican como cadenas, por lo que siempre deben estar entre comillas dobles.

Ejemplo:

#include <stdio.h>
int main() {
FILE *fp;
fp  = fopen ("data.txt", "w");
}

Salida:

El archivo se crea en la misma carpeta donde guardó su código.

Puede especificar la ruta donde desea crear su archivo

#include <stdio.h>
int main() {
FILE *fp;
fp  = fopen ("D://data.txt", "w");
}

Cómo cerrar un archivo

Siempre se debe cerrar un archivo cada vez que finalizan las operaciones en el archivo. Significa que el contenido y los enlaces al archivo están terminados. Esto evita daños accidentales al archivo.

'C' proporciona la función fclose para realizar la operación de cierre de archivos. La sintaxis de fclose es la siguiente,

fclose (file_pointer);

Ejemplo:

FILE *fp;
fp  = fopen ("data.txt", "r");
fclose (fp);

La función fclose toma un puntero de archivo como argumento. El archivo asociado con el puntero de archivo se cierra con la ayuda de la función fclose. Devuelve 0 si el cierre fue exitoso y EOF (fin de archivo) si se produjo un error al cerrar el archivo.

Después de cerrar el archivo, el mismo puntero de archivo también se puede usar con otros archivos.

En la programación 'C', los archivos se cierran automáticamente cuando finaliza el programa. Cerrar un archivo manualmente escribiendo la función fclose es una buena práctica de programación.

Escribir en un archivo

En C, cuando escribe en un archivo, los caracteres de nueva línea '\n' deben agregarse explícitamente.

La biblioteca stdio ofrece las funciones necesarias para escribir en un archivo:

El siguiente programa muestra cómo realizar la escritura en un archivo:

Función fputc():

#include <stdio.h>
int main() {
        int i;
        FILE * fptr;
        char fn[50];
        char str[] = "Guru99 Rocks\n";
        fptr = fopen("fputc_test.txt", "w"); // "w" defines "writing mode"
        for (i = 0; str[i] != '\n'; i++) {
            /* write to file using fputc() function */
            fputc(str[i], fptr);
        }
        fclose(fptr);
        return 0;
    }

Salida:

El programa anterior escribe un solo carácter en el fputc_test.txt archivo hasta que llegue al siguiente símbolo de línea "\n", que indica que la oración se escribió con éxito. El proceso consiste en tomar cada carácter de la matriz y escribirlo en el archivo.

  1. En el programa anterior, creamos y abrimos un archivo llamado fputc_test.txt en modo de escritura y declaramos nuestra cadena que se escribirá en el archivo.
  2. Hacemos una operación de escritura de carácter por carácter usando for loop y colocamos cada carácter en nuestro archivo hasta que se encuentra el carácter "\n", luego el archivo se cierra usando la función fclose.

función fput():

#include <stdio.h>
int main() {
        FILE * fp;
        fp = fopen("fputs_test.txt", "w+");
        fputs("This is Guru99 Tutorial on fputs,", fp);
        fputs("We don't need to use for loop\n", fp);
        fputs("Easier than fputc function\n", fp);
        fclose(fp);
        return (0);
    }

SALIDA:

  1. En el programa anterior, hemos creado y abierto un archivo llamado fputs_test.txt en modo de escritura.
  2. Después de hacer una operación de escritura usando la función fputs() escribiendo tres cadenas diferentes
  3. Luego, el archivo se cierra usando la función fclose.

fprintf()Función:

#include <stdio.h>
    int main() {
        FILE *fptr;
        fptr = fopen("fprintf_test.txt", "w"); // "w" defines "writing mode"
        /* write to file */
        fprintf(fptr, "Learning C with Guru99\n");
        fclose(fptr);
        return 0;
    }

SALIDA:

  1. En el programa anterior hemos creado y abierto un archivo llamado fprintf_test.txt en modo escritura.
  2. Después de realizar una operación de escritura usando la función fprintf() escribiendo una cadena, el archivo se cierra usando la función fclose.

Lectura de datos de un archivo

Hay tres funciones diferentes dedicadas a leer datos de un archivo

El siguiente programa demuestra la lectura del archivo fputs_test.txt usando las funciones fgets(),fscanf() y fgetc() respectivamente:

#include <stdio.h>
int main() {
        FILE * file_pointer;
        char buffer[30], c;

        file_pointer = fopen("fprintf_test.txt", "r");
        printf("----read a line----\n");
        fgets(buffer, 50, file_pointer);
        printf("%s\n", buffer);

        printf("----read and parse data----\n");
        file_pointer = fopen("fprintf_test.txt", "r"); //reset the pointer
        char str1[10], str2[2], str3[20], str4[2];
        fscanf(file_pointer, "%s %s %s %s", str1, str2, str3, str4);
        printf("Read String1 |%s|\n", str1);
        printf("Read String2 |%s|\n", str2);
        printf("Read String3 |%s|\n", str3);
        printf("Read String4 |%s|\n", str4);

        printf("----read the entire file----\n");

        file_pointer = fopen("fprintf_test.txt", "r"); //reset the pointer
        while ((c = getc(file_pointer)) != EOF) printf("%c", c);

        fclose(file_pointer);
        return 0;
    }

Resultado:

----read a line----
Learning C with Guru99

----read and parse data----
Read String1 |Learning|
Read String2 |C|
Read String3 |with|
Read String4 |Guru99|
----read the entire file----
Learning C with Guru99

  1. En el programa anterior, abrimos el archivo llamado "fprintf_test.txt" que se escribió previamente usando la función fprintf(), y contiene la cadena "Learning C with Guru99". Lo leemos usando la función fgets() que lee línea por línea donde el tamaño del búfer debe ser suficiente para manejar la línea completa.
  2. Volvemos a abrir el archivo para restablecer el archivo de puntero para que apunte al principio del archivo. Cree varias variables de cadenas para manejar cada palabra por separado. Imprime las variables para ver su contenido. El fscanf() se utiliza principalmente para extraer y analizar datos de un archivo.
  3. Vuelva a abrir el archivo para restablecer el archivo de puntero para que apunte al principio del archivo. Leer datos e imprimirlos desde el archivo carácter por carácter utilizando la función getc() hasta que se encuentre la declaración EOF
  4. Después de realizar una operación de lectura de archivo usando diferentes variantes, volvimos a cerrar el archivo usando la función fclose.

Lectura y escritura de archivos interactivos con getc y putc

Estas son las operaciones de archivo más simples. Getc significa obtener carácter y putc significa poner carácter. Estas dos funciones se usan para manejar un solo carácter a la vez.

El siguiente programa demuestra las funciones de manejo de archivos en la programación 'C':

#include <stdio.h>
int main() {
        FILE * fp;
        char c;
        printf("File Handling\n");
        //open a file
        fp = fopen("demo.txt", "w");
        //writing operation
        while ((c = getchar()) != EOF) {
            putc(c, fp);
        }
        //close file
        fclose(fp);
        printf("Data Entered:\n");
        //reading
        fp = fopen("demo.txt", "r");
        while ((c = getc(fp)) != EOF) {
            printf("%c", c);
        }
        fclose(fp);
        return 0;
    }

Salida:

  1. En el programa anterior hemos creado y abierto un archivo llamado demo en modo de escritura.
  2. Después de realizar una operación de escritura, el archivo se cierra usando la función fclose.
  3. Nuevamente hemos abierto un archivo que ahora contiene datos en modo de lectura. Se ejecutará un bucle while hasta que se encuentre el eof. Una vez que se encuentre el final del archivo, la operación finalizará y los datos se mostrarán mediante la función printf.
  4. Después de realizar una operación de lectura, el archivo se cierra nuevamente usando la función fclose.

Resumen


Lenguaje C

  1. Variables de C# y tipos de datos (primitivos)
  2. C Entrada Salida (E/S)
  3. Manejo de archivos C
  4. E/S de archivo de Python
  5. Apacer:Lanzamiento de las tarjetas CV110-SD y CV110-MSD en todo el mundo
  6. Apacer:serie SSD SV250 de grado industrial con velocidades de lectura / escritura de 560 y 520 MB / s
  7. acceed:módulos de E / S para comunicación de datos escalable
  8. Raspberry PI I / O Breakout cable y adaptador de placa de conexiones
  9. C - E/S de archivo
  10. C - Archivos de encabezado
  11. Qué son las tarjetas de E / S y cómo funcionan