6. Manejo de ficheros
6.1. Escritura en un fichero de texto
Para manejar ficheros, siempre deberemos realizar tres operaciones básicas:
- Abrir el fichero.
- Leer datos de él o escribir datos en él.
- Cerrar el fichero.
Eso sí, no siempre podremos realizar esas operaciones, así que además tendremos que comprobar los posibles errores. Por ejemplo, puede ocurrir que intentemos abrir un fichero que realmente no exista, o que queramos escribir en un dispositivo que sea sólo de lectura.
Vamos a ver un ejemplo, que cree un fichero de texto y escriba algo en él:
/*---------------------------*/
/* Ejemplo en C nº 55: */
/* C055.C */
/* */
/* Escritura en un fichero */
/* de texto */
/* */
/* Curso de C, */
/* Nacho Cabanes */
/*---------------------------*/
#include
int main()
{
FILE* fichero;
fichero = fopen("prueba.txt", "wt");
fputs("Esto es una línea\n", fichero);
fputs("Esto es otra", fichero);
fputs(" y esto es continuación de la anterior\n", fichero);
fclose(fichero);
return 0;
}
Hay varias cosas que comentar sobre este programa:
- FILE es el tipo de datos asociado a un fichero. Siempre aparecerá el asterisco a su derecha, por motivos que veremos más adelante (cuando hablemos de “punteros”).
- Para abrir el fichero usamos “fopen”, que necesita dos datos: el nombre del fichero y el modo de lectura. El modo de lectura estará formado por varias letras, de las cuales por ahora nos interesan dos: “w” indicaría que queremos escribir (write) del fichero, y “t” avisa de que se trata de un fichero de texto (text). Como abrimos el fichero para escribir en él, se creará el fichero si no existía, y se borrará su contenido si ya existía (más adelante veremos cómo añadir a un fichero sin borrar su contenido).
- Para escribir en el fichero y para leer de él, tendremos órdenes muy parecidas a las que usábamos en pantalla. Por ejemplo, para escribir una cadena de texto usaremos “fputs”, que recuerda mucho a “puts” pero con la diferencia de que no avanza de línea después de cada texto (por eso hemos añadido \n al final de cada frase).
- Finalmente, cerramos el fichero con "fclose".
Ejercicios propuestos:
- Crea un programa que vaya leyendo las frases que el usuario teclea y las guarde en un fichero de
texto llamado “registroDeUsuario.txt”. Terminará cuando la frase introducida sea "fin" (esa frase no deberá guardarse en el fichero).