6. Acceso Secuencial

6.3. Método is_open

Se puede chequear archivo ha sido abierto correctamente mediante una llamada a la función miembro is_open():
bool is_open();

Este método retorna un valor de tipo bool indicando true en caso que en realidad el objeto
haya sido correctamente asociado con un archivo abierto o false en otro caso.
Veamos un ejemplo:

 ¿Por que no hago open?

Veamos un ejemplo en el que crearemos un archivo , vamos a introducir datos en el y luego ver los datos que introducimos, con la idea de aplicar los conceptos hasta aquí vistos.


  • Este programa solo abre un flujo de Salida ( Out).
  • Si al ingresar los números flotantes no equivocamos el punto “.” por la coma “,” el programa finalizará ya que el caracter que separa los decimales no es el esperado para un flotante.

Vamos a agregar ahora mas líneas al programa con el objeto de poder leer el contenido del archivo.


  • Este programa abre un flujo ( archivo) escribe y luego lee.
  • Podemos ver que existen varias líneas que controlan que los flujos (archivos) sean abiertos y cerrados como corresponde.
  • Se sugiere al lector que pruebe el mismo, verá que existe un pequeño error en la última del archivo de texto que la misma se repite, se deja como desafío para el lector ver por que sucede y como solucionar.
Tips: Es de buen programador, abrir archivos solo en modo input only (ios::in) , de esta manera se evitan escrituras o alteraciones del contenido del archivo.

Hasta ahora estuvimos trabajando con archivos del tipo secuencial, en estos ejemplo nosotros no controlamos la ubicación de DONDE vamos a escribir, básicamente lo que agregábamos lo hacíamos al final ( usando el modo ios::ate), o al inicio destruyendo el contenido del archivo en caso de que tuviera algo ( usando el modo ios::trunc).
Veremos en la sección siguiente como posicionarnos dentro del archivo, para poder controlar el lugar donde insertemos algo en el fichero.
Ambas clases ofstream e ifstream poseen métodos para obtener o posicionarse dentro del
fichero.