file input output operations c
Un estudio sobre operaciones de entrada y salida de archivos y funciones de puntero de archivos en C ++.
En la programación en tiempo real, tratamos con grandes cantidades de datos que no se pueden acomodar desde dispositivos estándar de entrada y salida. Por lo tanto, necesitamos hacer uso del almacenamiento secundario para almacenar datos. Utilizando el almacenamiento secundario, normalmente almacenamos datos en forma de archivos.
Podemos leer datos de archivos o escribir datos en archivos utilizando una secuencia de datos denominada flujos, ya sea en formato de texto o binario. Hay varias operaciones de entrada / salida y otras relacionadas con archivos en C ++. Este tutorial explica estas operaciones relacionadas con archivos que utilizan varias clases.
=> Visite aquí para ver la serie exclusiva de tutoriales de capacitación en C ++.
Lo que vas a aprender:
Clases de entrada / salida de archivos en C ++
Hemos visto una clase iostream en C ++ que define la funcionalidad estándar de entrada y salida, incluidas cin y cout. Esta clase está limitada a los dispositivos de entrada y salida estándar como el teclado y el monitor respectivamente.
Cuando se trata de operaciones con archivos, C ++ tiene un conjunto diferente de clases que se pueden usar.
Estas clases se describen a continuación:
- Ofstream: Clase de manejo de archivos que significa el flujo de archivos de salida y se usa para escribir datos en archivos.
- Ifstream: Clase de manejo de archivos que significa el flujo de archivos de entrada y se usa para leer datos del archivo.
- Fstream: Clase de manejo de archivos que tiene la capacidad de manejar tanto ifstream como ofstream. Se puede usar para leer y escribir en un archivo.
Se admiten las siguientes operaciones en C ++ File Handling:
- Abrir un archivo
- Cerrar un archivo
- Leer de un archivo
- Escribir en un archivo
Veamos cada una de estas operaciones en detalle !!
Abrir un archivo
Asociar el objeto de una de las clases de flujo a un archivo, ya sea para lectura o escritura, o para ambos, se denomina abrir un archivo. Un archivo abierto se representa en código utilizando este objeto de flujo. Por lo tanto, cualquier operación de lectura / escritura realizada en este objeto de flujo también se aplicará al archivo físico.
La sintaxis general para abrir un archivo con la secuencia es:
|_+_|Aquí,
filename => La cadena que contiene la ruta y el nombre del archivo que se abrirá.
mode => Parámetro opcional que indica el modo en que se abrirá el archivo.
C ++ admite varios modos en los que se puede abrir el archivo. También podemos especificar una combinación de estos modos usando el operador OR.
cómo probar el sitio web en diferentes navegadores
Modo de archivo | Descripción |
---|---|
ios :: en | Abre el archivo en modo de entrada para lectura. |
ios :: fuera | Abre el archivo en modo de salida para escribir datos en un archivo. |
ios :: comió | Establecer la posición inicial al final del archivo. Si no se establece el indicador de fin de archivo, la posición inicial se establece al principio del archivo. |
ios :: trunc | Si el archivo se abre para escritura y ya tiene contenido, el contenido se trunca. |
ios :: aplicación | Abre el archivo en modo anexar, de modo que todos los contenidos se agregan al final del archivo. |
ios :: binario | Abre archivo en modo binario. |
Por ejemplo,si queremos abrir un archivo “myfile.dat” para agregar datos en modo binario, entonces podemos escribir el siguiente código.
|_+_| |_+_|Como ya se mencionó, el parámetro de modo es opcional. Cuando abrimos un archivo sin especificar el segundo parámetro, una función de miembro abierto de ofstream, ifstream o fstream tiene un modo predeterminado para abrir el archivo.
Estos se dan de la siguiente manera:
Clase | Modo por defecto |
---|---|
Ifstream | ios :: en |
ofstream | ios :: fuera |
Fstream | ios :: entrada | ios :: salida |
Entonces, si no especificamos el segundo parámetro en la función de apertura, dependiendo de la clase de flujo utilizada, el archivo se abre con el modo predeterminado.
Cerrar un archivo
Podemos usar la función de cierre para cerrar un archivo y liberar los recursos que contiene el archivo cuando hayamos terminado con las operaciones de entrada y salida en un archivo.
La función para cerrar un archivo es:
|_+_|Entonces, cuando hayamos terminado con las operaciones en el archivo myfile anterior, podemos cerrar el archivo de la siguiente manera:
|_+_|Una vez que se cierra el archivo con la función de cierre, el objeto de archivo asociado se puede volver a utilizar para abrir otro archivo.
Leer de un archivo
Podemos leer la información de un archivo línea por línea usando el operador de extracción de flujo (>>). Esto es similar a leer la entrada de la entrada estándar usando cin. La única diferencia es que en el caso de archivos, usamos ifstream o fstream object en lugar de cin.
A continuación, se proporciona un código de muestra para leer desde un archivo:
|_+_|En el código anterior, abrimos un archivo y usando el operador de extracción de flujo (>>), leemos el contenido del archivo. Una vez terminada la lectura, podemos cerrar el archivo.
Escribir en un archivo
También podemos escribir datos en un archivo usando las operaciones de archivo. El operador que usamos para escribir datos en un archivo es un operador de inserción de flujo (<<). Once again this is the same operator that we use to print data to a standard output device using cout. Difference between the two is that for file related writing we use ofstream or fstream object.
el mejor software espía para iphone 5
Consideremos el siguiente código de ejemplo:
|_+_|Aquí, leemos una línea de la entrada y la escribimos en un archivo que se abrió con el objeto ofstream.
En el siguiente ejemplo de código, proporcionamos una demostración de todas las operaciones de manejo de archivos.
|_+_|Producción:
Escribiendo en el archivo
Ingrese su nombre: Ved
Ingrese su edad: 7
Leer de un archivo
Por
7
En el programa anterior primero, abrimos un archivo en el modo de escritura. Luego leemos los datos, es decir, el nombre y la edad y los escribimos en un archivo. Luego cerramos este archivo. A continuación, abrimos el mismo archivo en modo lectura y leemos los datos línea por línea del archivo y lo mostramos en la pantalla.
Por tanto, este programa cubre todas las operaciones de E / S de archivos.
Escorias de estado de archivo
Hay algunas funciones miembro que se utilizan para comprobar el estado del archivo. Todas estas funciones devuelven un valor booleano.
Hemos tabulado estas funciones de la siguiente manera:
Función | Descripción |
---|---|
eof () | Devuelve verdadero si se llega al final del archivo mientras se lee el archivo. |
fallar() | Devuelve verdadero cuando falla la operación de lectura / escritura o se produce un error de formato |
malo() | Devuelve verdadero si falla la lectura o escritura en un archivo. |
bien() | Devuelve falso en los mismos casos en los que llamar a cualquiera de las funciones anteriores devolvería verdadero. |
Obtener / poner y otras operaciones especiales
Los flujos de E / S de archivos que hemos visto hasta ahora tienen posiciones internas de obtención y colocación similares a las otras secuencias de E / S como iostream.
La clase ifstream tiene una posición de obtención interna que contiene la ubicación del elemento / carácter que se leerá en el archivo en la siguiente operación de entrada. La clase ofstream tiene una posición de colocación interna que contiene la ubicación del elemento / carácter que se escribirá en la siguiente operación de salida.
Por cierto, fstream tiene posiciones de compra y venta.
Para facilitar la lectura y la escritura usando estas posiciones, tenemos algunas funciones miembro que se utilizan para observar y modificar estas posiciones.
Estas funciones se enumeran a continuación:
Funciones | Descripción |
---|---|
tellg () | Devuelve la posición actual del puntero get |
tellp () | Devuelve la posición actual del puntero put |
seekg (posición) | Mueve obtener un puntero a la ubicación especificada contando desde el principio del archivo |
seekg (desplazamiento, dirección) | Los movimientos obtienen un puntero para desplazar el valor relativo al punto dado por la dirección del parámetro. |
seekp (posición) | Mueve poner un puntero a la ubicación especificada contando desde el principio del archivo |
seekp (desplazamiento, dirección) | Moves pone un puntero para compensar el valor relativo al punto dado por la dirección del parámetro. |
El parámetro dirección dado en los prototipos de funciones anteriores es un enumerado tipo de tipo seekdir y determina el punto a partir del cual se cuenta la compensación.
Spring MVC preguntas y respuestas de la entrevista para experimentados.
Puede tener los siguientes valores.
ios :: rogar | Desplazamiento desde el comienzo de la secuencia |
---|---|
ios :: cur | Desplazamiento desde la posición actual |
ios :: fin | Desplazamiento desde el final de la secuencia |
Veamos un ejemplo completo que demuestra el uso de estas funciones.
|_+_|Producción:
Nuevo archivo creado
Posición inicial del puntero de archivo en: 34
Después de seekp (-1, ios :: cur), Posición del puntero de archivo en: 33
Después de seekg (5, ios :: beg), File Pointer en: 5
Después de seekg (1, ios :: cur), File Pointer en: 6
Como se muestra en el programa anterior, tenemos un archivo creado en el que escribimos una línea de texto. Luego, utilizando las diversas funciones descritas anteriormente, mostramos varias posiciones del puntero de archivo.
Conclusión
En este tutorial, hemos visto las diversas operaciones de archivo para abrir, cerrar y leer / escribir datos desde / hacia un archivo.
También hemos visto las funciones para cambiar el puntero del archivo para acceder a posiciones específicas en el archivo. En nuestros tutoriales posteriores, discutiremos algunos temas más importantes relacionados con C ++.
=> Lea la serie de formación Easy C ++.
Lectura recomendada
- Operaciones básicas de entrada / salida en C ++
- Entrada-salida y archivos en Python (Python abrir, leer y escribir en archivo)
- Operaciones básicas de E / S en Java (flujos de entrada / salida)
- Manipulación de archivos en Unix: descripción general del sistema de archivos Unix
- Caracteres especiales o metacaracteres Unix para manipulación de archivos
- Permisos de acceso a archivos Unix: Unix Chmod, Chown y Chgrp
- Objetos de archivo VBScript: CopyFile, DeleteFile, OpenTextFile, Leer y escribir archivo de texto
- Implementación de Java: creación y ejecución de un archivo JAR de Java