#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();