Archivos de acceso aleatorio c++

Solo disponible en BuenasTareas
  • Páginas : 2 (312 palabras )
  • Descarga(s) : 0
  • Publicado : 16 de enero de 2012
Leer documento completo
Vista previa del texto
Archivos de acceso aleatorio
Los archivos de acceso aleatorio son más versátiles, permiten acceder a cualquier parte del fichero en cualquier momento, como si fueran arrays en memoria. Lasoperaciones de lectura y/o escritura pueden hacerse en cualquier punto del archivo.
Estos existen para que los datos puedan ser guardados y que no se borren cuando acaben la ejecución del programa.
Paraeso disponemos de las funciones seekp y seekg, que permiten cambiar la posición del fichero en la que se hará la siguiente escritura o lectura. La 'p' es de put y la 'g' de get, es decir escritura ylectura, respectivamente.
Otro par de funciones relacionadas con el acceso aleatorio son tellp y tellg, que sirven para saber en qué posición del fichero nos encontramos.
La función seekg nos permiteacceder a cualquier punto del fichero, no tiene por qué ser exactamente al principio de un registro, la resolución de la funciones seek es de un byte.
Cuando trabajemos con nuestros propios streamspara nuestras clases, derivándolas de ifstream, ofstream o fstream, es posible que nos convenga sobrecargar las funciones seek y tell para que trabajen a nivel de registro, en lugar de hacerlo anivel de byte.
La función seekp nos permite sobrescribir o modificar registros en un fichero de acceso aleatorio de salida. La función tellp es análoga a tellg, pero para ficheros de salida.
Losarchivos de acceso aleatorio nos permiten hacer lo mismo que los de secuencial, solo que nos ayudamos de funciones para mover los punteros de lectura y escritura, para leer o escribir cosas de maneraaleatoria.
#include
#include
using namespace std;

int main() {
int i;
char mes[12][20] = {"Enero", "Febrero", "Marzo",
"Abril", "Mayo", "Junio", "Julio", "Agosto","Septiembre", "Octubre", "Noviembre",
"Diciembre"};
char cad[20];
char vacio[20]=" ";
fstream f("meses.txt", ios::out);

// Crear fichero con los nombres de los meses:...
tracking img