Resumen: Entrega nº37 del tutorial "Curso básico de programación en lenguaje C desde cero".
Codificación aprenderaprogramar.com: CU00537F

 

 

ESCRIBIR EN ARCHIVOS EN LENGUAJE C

Ya tenemos definido cómo abrimos y cerramos la comunicación con un archivo. Ahora tenemos que ver cómo manipulamos los datos. Para ello nos valemos de las funciones disponibles. En el caso de escritura en archivos tenemos las siguientes.

 

logo lenguaje programacion C

 

Función o macro

Significado y ejemplo aprenderaprogramar.com

fputc

Escribe un carácter en el archivo

Ejemplo: fputc (‘a’, nombreInternoFichero);

putc

Igual que fputc

fputs

Escibe una cadena de texto en el archivo

Ejemplo: fputs (“cadena”, nombreInternoFichero);

fprintf

Escribe como texto a un archivo los datos transformando el formato especificado en texto

Ejemplo: fprintf (fichero, "%s %d", cadena1, num);

 

 

Tener en cuenta que los datos a escribir pueden ser “un valor directo” (p.ej. texto entrecomillado), o una variable cuyo contenido representa lo que queremos escribir en el fichero.

Veamos varios ejemplos de código que logran el mismo resultado usando fputs, fputc y fprintf. Escribe el código y comprueba los resultados. Cada vez que se ejecuta el código, el contenido del archivo cursoAF1.txt se borra y se crea de nuevo en el directorio de trabajo (donde esté guardado el proyecto de Code::Blocks).

#include <stdio.h>
#include <stdlib.h>
// Ejemplo aprenderaprogramar.com
int main() {
    FILE* fichero;
    fichero = fopen("cursoAF1.txt", "wt");
    fputs("Aprender a programar (linea 1)\n", fichero);
    fputs("requiere esfuerzo (linea 2)\n", fichero);
    fputs("y dedicacion (linea 3)", fichero);
    fclose(fichero);
    printf("Proceso completado");
    return 0;
}

 

#include <stdio.h>
#include <stdlib.h>
int main() {
    char cadena1 [] = "Aprender a programar (linea 1)\n";
    char cadena2 [] = "requiere esfuerzo (linea 2)\n";
    char cadena3 [] = "y dedicacion (linea 3)";
    FILE* fichero;
    fichero = fopen("cursoAF1.txt", "wt");
    fputs(cadena1, fichero);
    fputs(cadena2, fichero);
    fputs(cadena3, fichero);
    fclose(fichero);
    printf("Proceso completado");
    return 0; // Ejemplo aprenderaprogramar.com
}

 

#include <stdio.h>
#include <stdlib.h>
int main() {
    int i=0;
    char cadena1 [] = "Aprender a programar (linea 1)\n";
    char cadena2 [] = "requiere esfuerzo (linea 2)\n";
    char cadena3 [] = "y dedicacion (linea 3)";
    FILE* fichero;
    fichero = fopen("cursoAF1.txt", "wt");
    printf("Longitud de cadena1 es %d \n", sizeof(cadena1));
    while (cadena1[i]!='\0') { fputc(cadena1[i], fichero); i++; }
    i=0;
    while (cadena2[i]!='\0') { fputc(cadena2[i], fichero); i++; }
    i=0;
    while (cadena3[i]!='\0') { fputc(cadena3[i], fichero); i++; }
    i=0;
    fclose(fichero);
    printf("Proceso completado");
    return 0; // Ejemplo aprenderaprogramar.com
}

 

#include <stdio.h>
#include <stdlib.h>
// Ejemplo aprenderaprogramar.com
int main() {
    int i=3;    
    char cadena1 [] = "Aprender a programar (linea 1)\n";
    char cadena2 [] = "requiere esfuerzo (linea 2)\n";
    char cadena3 [] = "y dedicacion (linea 3)\n";
    FILE* fichero;     
    fichero = fopen("cursoAF1.txt", "wt");
    fprintf (fichero, "%s%s%sEscritas %d+1 lineas en fichero", cadena1, cadena2, cadena3, i);
    fclose(fichero);     printf("Proceso completado");
    return 0;
}

 

 

El resultado de ejecución de cualquiera de los programas anteriores es que se crea un archivo de nombre cursoAF1.txt cuyo contenido será:

Aprender a programar (linea 1)

requiere esfuerzo (linea 2)

y dedicacion (linea 3)

 

En la última versión se añade además otra línea: “Escritas 3+1 lineas en fichero” para demostrar que con fprintf podemos escribir en un fichero datos a partir de un tipo distinto de char, como por ejemplo un dato numérico.

 

 

EJERCICIO

Crea un programa que pida 3 números al usuario y guarde 4 líneas en un archivo denominado datos.txt. El contenido de las líneas debe ser el siguiente: las 3 primeras líneas, cada uno de los datos proporcionados. La cuarta línea, el valor medio de los tres datos anteriores.

Ejemplo: el usuario introduce como números 10, 14, 31. El archivo creado deberá contener lo siguiente:

10

14

31

18.333333

 

Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com.

 

 

 

 

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.

 

Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

 

Descargar archivo: