Escribir (guardar datos) en ficheros o archivos en lenguaje C. fputc, putc, fputs, fprintf. Ejemplos (CU00537F)

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.

Donar o colaborar

Este sitio se mantiene abierto gracias al apoyo de muchas personas. Si crees que merece la pena apoyar económicamente este sitio web puedes realizar una donación o colaborar. Contacta con nosotros.

¿Puedo yo aprender?

Seas o no del área informática, si quieres aprender a programar te ofrecemos una solución guiada y personalizada: realizar un curso tutorizado on-line. Con este tipo de curso, podrás aprender a programar de forma ágil y amena.

Acceder a detalles y precios de los cursos tutorizados on-line

Política sobre cookies

Utilizamos cookies propias y de terceros para ofrecerte una mejor experiencia y servicio, de acuerdo a tus hábitos de navegación.

Si continúas navegando, consideramos que aceptas su uso. Puedes obtener más información en nuestra Política de Cookies.

En Facebook!

Ahora puedes seguirnos en Facebook. Noticias, novedades y mucho más ¡Te esperamos!

RANKING APR2+

Ranking de lenguajes y entornos de programación aprenderaprogramar.com
 

JULIO - AGOSTO 2017

1. Java / J2EE
2. Entornos Oracle
3. Entornos SQL Server
4. JavaScript, jQuery
5. .NET, C#
6. HTML, CSS
7. Android, iOS
8. Php, MySql


Acceder a detalles sobre el ranking de programación aprenderaprogramar.com

FOROS APR2+

Pregunta, responde, consulta, lee, intercambia...

Participa!!! Entra en los foros aprenderaprogramar.com.

             Copyright 2006-2017 aprenderaprogramar.com                La web abierta a cualquier persona interesada en la programación