Hoy vamos a ver cómo escribir o agregar contenido (cadenas, números, etcétera) a un archivo de texto o fichero txt en C, utilizando la función fopen, fprintf y fclose.

Abriendo archivo con fopen para posteriormente escribir contenido con fprintf

Verás que es muy sencillo escribir contenido a un archivo en C. Vamos a ver dos maneras de apertura del archivo; una sirve para truncar el archivo y escribir el contenido, es decir, sobrescribir.

La segunda forma adjunta o añade el contenido al ya existente.

La función fprintf

Esta función es sencilla. Funciona como printf pero escribe el resultado en un archivo o apuntador a un archivo o tipo FILE. Su sintaxis es la siguiente:

fprintf(archivo, formato, variables del formato...);

Es decir, así como printf tiene la sintaxis:

printf(formato, variables del formato...);

Lo mismo pasa con fprintf. Por ejemplo, para escribir una cadena sería:

fprintf(archivo, "Hola mundo");

Como no hay especificadores de formato en la cadena, no debemos pasar variables de formato. En cambio, en el siguiente caso sí:

fprintf(archivo, "La edad es %d y el género es %s", 23, "M");

En este caso como usamos %d y %s tuvimos que poner los valores; si no hay especificadores de formato no es necesario pasar los últimos argumentos.

Los modos de apertura

Existen varios modos de apertura; ya vimos por ejemplo el modo para leer un archivo. Para escribir contenido vamos a ver dos:

  • w: sobrescribir el contenido
  • a+: agregar el contenido

Es decir, con w se elimina todo el contenido del archivo y se agrega el nuevo. En cambio con a+ se adjunta el nuevo contenido al ya existente.

Nota: ambos modos crean el archivo si no existe

Escribir archivo con C

Una vez que hemos explicado los modos y la función, vamos a ver el ejemplo de código. En este caso abrimos el archivo con fopen, y si no se regresa NULL entonces le escribimos contenido.

#include <stdio.h>

/**
 * Escribir un archivo con C, usando las funciones
 * fopen, fclose y fprintf
 *
 * @author parzibyte
 * https://parzibyte.me/blog
 *
 * */int main() {
    /*
     * Podemos poner la ruta completa o el nombre, si ponemos
     * solo el nombre entonces se refiere al directorio en donde
     * se ejecuta el programa
     *
     */    char *nombreArchivo = "archivo.txt";
    char *modo = "w";// w es para sobrescribir, a+ es para añadir al existente
    FILE *archivo = fopen(nombreArchivo, modo);
    // Si por alguna razón el archivo no fue abierto, salimos inmediatamente
    if (archivo == NULL) {
        printf("Error abriendo archivo %s", nombreArchivo);
        return 1;
    }
    /*
     * Escribir el contenido usando fprintf.
     * */    fprintf(archivo, "Hola mundo, estamos escribiendo en un archivo\n");
    fprintf(archivo, "También podemos formatear números por ejemplo %d\n", 1);
    fprintf(archivo, "¿Saltos de línea? sí\n\n\n");
    fprintf(archivo, "Podemos escribir cualquier cosa como si usáramos printf ;)\n");

    // Al final, cerramos el archivo
    fclose(archivo);
    puts("Contenido escrito correctamente");
    return 0;
}

Es decir, fopen regresa NULL si no se pudo abrir el archivo, ya sea porque no hay permisos, porque el nombre no existe o cosas así.

Después con fprintf escribimos el contenido, podemos invocar a esta función cuantas veces sea necesario; eso sí, al final debemos cerrar el archivo.

En mi caso el archivo resultante es:

Hola mundo, estamos escribiendo en un archivo
También podemos formatear números por ejemplo 1
¿Saltos de línea? sí


Podemos escribir cualquier cosa como si usáramos printf ;)

Probar código para escribir archivo con C

Te invito a ver cómo leer el contenido de un archivo en este post.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

  • hola, espero que se encuentre muy bien.
    No tengo ninguna duda, pero quisiera que me recomendara algunos libros para adentrarme mejor en el mundo de la programación(comencé hace 4 meses)

    • Hola. Claro, en caso de que sea para el lenguaje C, recomiendo:
      El lenguaje de programación C
      Libro de Brian Kernighan y Dennis Ritchie

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

4 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

5 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

4 semanas hace

Esta web usa cookies.