0
Gracias

Unas palabras de agradecimiento nunca están de más.

Entradas/Salidas: Los flujos en C++

<ital>

Para poder conservar nuestros datos una vez cerrados los programas debemos escribirlos en ficheros. En este artículo veremos cómo hacerlo.

Procedimiento

Para abrir un fichero (ya sea para lectura o escritura) es necesario declarar una instancia de los objetos ofstream y/o ifstream. Para ello debemos incluir "fstream".

Nota: el fichero utilizado para los ejemplos se llama ”datos.txt”. Puedes utilizar cualquier otro nombre que el resultado será el mismo.

Abrir un fichero para lectura

Para abrir un fichero para lectura, el objeto necesario es "ifstream". A continuación, para cerrar el flujo hay que utilizar la función close().

Apertura del fichero “datos.txt” para lectura

#include <iostream>
#include <fstream>

using namespace std;

int main() {

ifstream fichero("datos.txt");
fichero.close();                     //cierre del flujo

return 0;
}

Este código abre el fichero “datos.txt” para lectura.

Lectura del contenido de “datos.txt”

#include <iostream>
#include <fstream>

using namespace std;

int main() {

ifstream fichero("datos.txt");
char caracter;
while(fichero.get(caracter)) 
cout << caracter;
cout << endl << endl;
fichero.close();                     //cierre del flujo

return 0;
}

Apertura de un fichero para escritura

Para abrir un fichero para escritura, el objeto necesario es "ofstream". A continuación para cerrar este flujo hay que utilizar la función close().

Apertura del fichero “datos.txt” para escritura

#include <iostream>
#include <fstream>

using namespace std;

int main() {

ofstream fichero("datos.txt");
fichero.close();                     //cierra del flujo

return 0;
}

Este código abre el fichero “datos.txt” para escritura.

Escribir en “datos.txt”

#include <iostream>
#include <fstream>

using namespace std;

int main() {

char hola[10] = "hola!"
ofstream fichero("datos.txt");
fichero << hola;              //escritura de la cadena hola en datos.txt
fichero.close();                     //cierre del flujo

return 0;
}

Tipos de apertura de flujos

Por defecto, ofstream crea automáticamente un fichero si no existe el indicado. Podemos agregar argumentos a este constructor para modificar su comportamiento. A continuación una lista de posibles parámetros:

  • ios::app: Abre el fichero en modo agregar, y posiciona el apuntador al final del mismo en lugar de eliminar su contenido.

  • ios::ate: Permite ir al final del fichero
  • ios::trunc: Comportamiento por defecto: elimina el contenido.
  • ios::nocreate: Provoca un error de apertura si el fichero no existe.
  • ios::noreplace: Provoca un error de apertura si el fichero ya existe.

Foto: © Everypixel

0
Gracias

Unas palabras de agradecimiento nunca están de más.

Haz una pregunta
Nuestros contenidos son redactados en colaboración con expertos del ámbito tecnológico bajo la dirección de Jean-François Pillou, fundador de CCM.net. CCM es un sitio de tecnología líder a nivel internacional y está disponible en 11 idiomas.
Consulta también
El documento « Entradas/Salidas: Los flujos en C++ » se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo libremente. No olvides citar a CCM (es.ccm.net) como tu fuente de información.