[Índice][Previo][Siguiente]

Entrada/salida con ficheros

La entrada/salida a ficheros se realiza declarando objetos del tipo ifstream y ofstream, respectivamente, que están definidos en fstream.hPor ejemplo, el siguiente programa lee datos de un fichero llamado datos.in y los escribe en el fichero output.out:
#include <iostream.h>
#include <fstream.h>

main (){ 
float pi;
ifstream entrada("datos.in");
ofstream salida("output.out");

entrada >> pi;
salida << pi << endl;
}

La variable entrada es de tipo ifstream (input file stream) y se puede usar igual que cin . Está unido al fichero datos.in. De forma análoga, salida se declara del tipo ofstream (output file stream) y se puede usar igual que cout . Los ficheros utilizados para entrada y salida han de declararse del tipo fstream

El programa funciona como esperábamos. Pero si en lugar de un número real trabajamos con un carácter, como en el siguiente ejemplo:

#include <iostream.h>
#include <fstream.h>

main (){ 
char c;
ifstream entrada("datos.in");
ofstream salida("output.out");

if(entrada && salida)             // valdrán 0 si hay algún error
   while(entrada >> c)
         salida << c ;
}

y el fichero datos.in tiene la forma

Bienvenido al fantástico 
mundo del C++

el fichero output.out será:

BienvenidoalfantásticomundodelC++

Como vemos, se ignoran los espacios, tabulados, y caracteres de final de línea. Para evitar esto se puede utilizar la función get:

while(entrada.get(c))
      salida << c ;

o

while(entrada.get(c))
      salida.put(c);

También es posible leer líneas completas mediante la función getline. Además, se puede abrir un fichero para añadir datos:

ofstream ("datos.in", iosapp);

No hemos utilizado ninguna función para cerrar los ficheros datos.in y output.out que hemos utilizado, ya que los ficheros se cierran automáticamente cuando las variables que los representan salen de su rango de validez. Si necesitamos cerrar un fichero:

salida.close();

[Índice][Previo] [Siguiente]

Free Web Hosting