"Ningún juego dura tanto hasta que te lo terminas como el que te programas tú mismo,
ninguno te absorbe tanto y ninguno te produce tanta satisfacción cuando lo has acabado"
Programacion de videojuegos
Martes 22 de Octubre del 2019

Menu principal
Colaborar (con PayPal)

Para continuar con el trabajo de esta Web y poder pagar el hosting, viene bien la ayuda que sea. Gracias a todos.

Importe: 

Ultimas descargas
19.Jan

Clase que permite dibujar texto en OpenGL con mucha facilidad.Usa FreeType2.Para ver que hace y c...


Ficheros en C++ fstream Imprimir Correo electrónico
Manuales varios - Manuales de Programación
Escrito por Operata   
Pequeña introduccion de acceso a Ficheros en C++ mediante Streams


Ya conocemos la forma usual de manejar la cónsola en C++, mediante los operadores y los streams cin y cout. El acceso a ficheros se realiza de una manera muy similar.

Creación y destrucción de streams a ficheros
Lo primero que hay que hacer es crear un stream a fichero. Las clases ifstream y ofstream representan ficheros para lectura y escritura respectivamente. Una vez construido un stream a través de estas clases, ya podemos acceder al fichero que representan:

ofstream f(“Datos.txt”);
f < < 3;
f < < 3.5;
f < < “Hola”;

El acceso a través de los operadores hace extremadamente cómoda la lectura y escritura de datos de distinto tipo.
El fichero se cierra automáticamente al activarse el destructor del objeto, aunque también puede cerrarse de manera explícita mediante la función miembro close().

ifstream f(“Datos.txt”);
int k;
f > > k;
f.close (); // Cerrar fichero

Si queremos abrir un fichero para lectura y escritura usaremos la clase mas general fstream, aunque en este caso deberemos indicar el tipo de acceso que deseamos realizar mediante las constantes ios.

fstream f(“Datos.txt”, ios::in | ios::out);
int k;
f > > k;
f < < 3;

Indicadores error y fin de fichero Lo primero que hay que hacer es comprobar que el fichero se ha abierto correctamente, esto lo podemos hacer interrogando directamente al objeto:

ifstream f(“Datos.txt”);
int k;
if (!f) throw ErrorApertura;
f > > k;

La función miembro bad() devuelve un valor distinto de cero si se produce algún tipo de problema durante el acceso al fichero (fallos de escritura/lectura, movimiento del puntero de lectura/escritura fuera del rango permitido, etc.).
Finalmente, la función miembro eof() indica si hemos llegado al final del fichero:

ifstream f(“Datos.txt”);
int k;
while (!f.eof ())
{

f > > k;
cout < < k;
}

Movimiento del puntero de acceso al fichero
La función miembro seekg() permite situar el puntero de lectura escritura en la posición que se desee:

ifstream f (“Datos.txt”);
if (!f) throw ErrorApertura;
f.seekg (10, ios::beg);
int k;
f > > k;

Al igual que en la versión existente en la biblioteca estándar de E/S de C, debe indicarse el punto de referencia para calcular el desplazamiento: ios::beg (comienzo), ios::cur (posición actual), ios::end (final).

Otras funciones de lectura
Si se desea leer una línea completa de un fichero de texto, puede usarse la función miembro getline():

ifstream f (“Datos.txt”);
char buf[80];
while (!f.eof ())
{
f.getline (buf, 80);
if (!f.bad ()) // No hay errores
cout < < buf;
}

También es posible realizar lecturas y escrituras de bloques de bytes mediante las funciones read() y write():

struct dato
{
int k;
float f;
};

main ()
{
ifstream f (“Datos”);
dato p;
if (!f)  throw ErrorApertura
f.read ((char *)&p, sizeof (p));
}




 


Banner
Spanish Chinese (Simplified) English French German Japanese Portuguese Russian