Introducción al manejo de archivos

Solo disponible en BuenasTareas
  • Páginas : 8 (1907 palabras )
  • Descarga(s) : 0
  • Publicado : 8 de diciembre de 2011
Leer documento completo
Vista previa del texto
1.1 Abrir/Crear

Para poder abrir o crear un archivo se necesitan de 3 cosas; un puntero FILE para poder accesar a través de él al archivo, el nombre del archivo al que intentamos accesar o que queremos crear y por último el modo de apertura en el que va a estar el archivo, utilizando esto junto con la función fopen() podremos crear o abrir un archivo en nuestro programa de la siguiente manera:FILE * fopen ( const char * nombre_archivo, const char * modo );

Los modos de apertura pueden ser:

Modo Significado
“r” Abre para lectura (el archivo debe de existir).

“w” Abre para escritura (si el archivo ya existe se perderán sus datos, si no se creara un archivo nuevo).

“a” Abre para añadir al final.

“r+” Abre un archivo ya existente para modificar(lectura/escritura).

“w+” Crea un archivo para lectura/escritura (si ya existe se perderán los datos).

“a+” Abre el archivo para modificar (lectura/escritura) el final. Si no existe es como w+.

Si la función falla al crear o abrir un archivo entonces regresara un puntero NULL.

Programa ejemplo:

#include
#include

int main()
{
FILE *ar;
char nm[] = "ejemplo.txt";

//Creacióndel archivo.
ar = fopen(nm,"w");

//Comprueba si se creó correctamente.
if(ar != NULL)
printf("El archivo %s se creó correctamente\n\n",nm);
else
printf("Error al crear el archivo %s\n\n",nm);
system("PAUSE");
return 0;
}

1.2 Cerrar

Naturalmente al terminar de utilizar un archivo este se debe de cerrar, para eso solo necesitamos el puntero alarchivo que queremos cerrar y la función fclose() que se utiliza de la siguiente manera:

int fclose ( FILE * stream );

Si la función logra cerrar exitosamente el archivo regresara un valor entero cero y si falla al cerrar el archivo regresara el fin de archivo del mismo (EOF).

Programa ejemplo:

#include
#include

int main()
{
FILE *ar;
char nm[] = "ejemplo.txt";int flg;

//Abrir archivo.
ar = fopen(nm,"w");

//Cerrar archivo.
flg = fclose(ar);


//Checar que el archivo se haya cerrado correctamente.
if(flg == 0)
printf("El archivo %s se ha cerrado exitosamente\n\n",nm);
else
printf("Error al cerrar el archivo %s\n\n",nm);
system("PAUSE");
return 0;
}

1.3 Lectura

Existen 4funciones que nos ayudan a leer un archivo: getc(), fgetc(), fgets() y fscanf().

getc() y fgetc()

Estas funciones hacen lo mismo, leen un carácter del archivo (el siguiente carácter asociado al puntero a FILE). Su formato es el siguiente:

int getc ( FILE * stream );
int fgetc ( FILE * stream );

Devuelve el carácter leído o EOF si es fin de archivo o si ha ocurrido algún error.fgets()

Esta función lee una cadena de caracteres del archivo hasta que termine una línea o hasta que llegue a n-1 caracteres (n es un argumento de la función) y lo guarda en una variable. El formato es:

char * fgets ( char * str, int num, FILE * stream );

Si la función es exitosa la función devuelve la misma cadena que leyó, si se alcanzo EOF y no se leyó ningún carácter o si ocurrióalgún error entonces regresa un puntero NULL.

fscanf()

Esta función es parecida a la función scanf() excepto que lee del archivo. Sirve para leer cualquier tipo de dato estándar de un archivo, lleva como primer argumento el puntero a FILE asociado al archivo que se desea leer. Su formato es:

int fscanf ( FILE * stream, const char * format, ... );

Programa ejemplo:

#include
#includeint main()
{
FILE *ar;
char cad[100], nm[] = "ejemplo.txt";

//Abrir el archivo
ar = fopen(nm,"r");

//Leer el archivo
fgets(cad,100,ar);

//Imprimir resultado
puts(cad);
printf("\n\n");
fclose(ar);
system("PAUSE");
return 0;
}

1.4 Escritura

Existen 4 funciones que nos ayudan a escribir en un archivo: putc(), fputc(),...
tracking img