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
.
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.
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.
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 contenidoa+
: agregar el contenidoEs 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
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 ;)
Te invito a ver cómo leer el contenido de un archivo en este post.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.
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