El manejo de archivos se utiliza para almacenar datos de forma permanente en una computadora. Usando el manejo de archivos podemos almacenar nuestros datos en la memoria secundaria (Disco duro).
Cómo lograr el manejo de archivos
Para lograr el manejo de archivos, debemos seguir los siguientes pasos: –
PASO 1: nombrar un archivo
PASO 2-Abrir un archivo
PASO 3: escribir datos en el archivo
PASO 4-Leer datos del archivo
PASO 5-Cerrar un archivo.
Corrientes en C++: -
Le damos entrada al programa en ejecución y el programa en ejecución devuelve la salida. La secuencia de bytes proporcionada como entrada al programa en ejecución y la secuencia de bytes que viene como salida del programa en ejecución se denomina flujo. En otras palabras, los flujos no son más que el flujo de datos en una secuencia.
La operación de entrada y salida entre el programa en ejecución y los dispositivos como el teclado y el monitor se conoce como operación de E/S de consola. La operación de entrada y salida entre el programa en ejecución y los archivos se conoce como operación de E/S de disco.
Clases para operaciones de flujo de archivos: -
El sistema de E/S de C++ contiene un conjunto de clases que definen los métodos de manejo de archivos. Estos incluyen las clases ifstream, ofstream y fstream. Estas clases se derivan de fstream y de la clase iostream correspondiente. Estas clases, diseñadas para gestionar los archivos del disco, se declaran en fstream y por tanto debemos incluir este archivo en cualquier programa que utilice archivos.
1. ios: -
- ios significa flujo de entrada y salida.
- Esta clase es la clase base para otras clases en esta jerarquía de clases.
- Esta clase contiene las funciones necesarias que utilizan todas las demás clases derivadas para operaciones de entrada y salida.
2. istream: -
- istream significa flujo de entrada.
- Esta clase se deriva de la clase 'ios'.
- Esta clase maneja el flujo de entrada.
- El operador de extracción (>>) está sobrecargado en esta clase para manejar flujos de entrada desde archivos hasta la ejecución del programa.
- Esta clase declara funciones de entrada como get(), getline() y read().
3. del otro lado:-
- ostream significa flujo de salida.
- Esta clase se deriva de la clase 'ios'.
- Esta clase maneja el flujo de salida.
- El operador de inserción (<<) está sobrecargado en esta clase para manejar flujos de salida a archivos desde la ejecución del programa.
- Esta clase declara funciones de salida como put() y write().
4. corrientebuf: -
tatuaje en forma completa
- Esta clase contiene un puntero que apunta al búfer que se utiliza para administrar los flujos de entrada y salida.
5. fstreambase: -
- Esta clase proporciona operaciones comunes a las secuencias de archivos. Sirve como base para las clases fstream, ifstream y ofstream.
- Esta clase contiene las funciones open() y close().
6. ifstream: -
- Esta clase proporciona operaciones de entrada.
- Contiene la función open() con modo de entrada predeterminado.
- Hereda las funciones get(), getline(), read(), seekg() y tellg() del istream.
7. de corriente: -
- Esta clase proporciona operaciones de salida.
- Contiene la función open() con modo de salida predeterminado.
- Hereda las funciones put(), write(), seekp() y tellp() de ostream.
8. fstream: -
- Esta clase proporciona soporte para operaciones simultáneas de entrada y salida.
- Hereda todas las funciones de las clases istream y ostream a través de iostream.
9. archivobuf: -
- Su propósito es configurar los buffers de archivos para lectura y escritura.
- También podemos utilizar la función miembro del búfer de archivo para determinar la longitud del archivo.
En C++, los archivos se procesan principalmente mediante el uso de tres clases fstream, ifstream y ofstream disponibles en el archivo de encabezado fstream.
de corriente: Clase de streaming para escribir en archivos
sicorriente: Clase de transmisión para leer archivos
fstream: Transmita clases para leer y escribir desde/hacia archivos.

Ahora el primer paso es abrir el archivo particular para la operación de lectura o escritura. Podemos abrir el archivo por
1. pasar el nombre del archivo en el constructor en el momento de la creación del objeto
2. usando el método abierto
Por ej.
Abrir archivo usando el constructor
ifstream (const char* nombre de archivo, ios_base::openmode mode = ios_base::in);
ifstream fin(nombre de archivo, modo abierto) por defecto modo abierto = ios::in
ifstream fin(nombre de archivo);Abrir archivo usando el método abierto
Llamada del constructor predeterminado
ifstream fin;
fin.open(nombre de archivo, modo abierto)
fin.open(nombre de archivo);
Modos:
| Miembro constante | Representa | Acceso |
|---|---|---|
| en * | aporte | Archivo abierto para lectura: el búfer de flujo interno admite operaciones de entrada. |
| afuera | producción | Archivo abierto para escritura: el búfer de flujo interno admite operaciones de salida. |
| binario | binario | Las operaciones se realizan en modo binario en lugar de texto. |
| comió | al final | La posición de salida comienza al final del archivo. |
| aplicación | adjuntar | Todas las operaciones de salida ocurren al final del archivo, añadiéndose a su contenido existente. |
| trompa | truncar | Se descarta cualquier contenido que existiera en el archivo antes de abrirlo. |
Modos abiertos predeterminados:
| si corriente | ios::en |
| ofstream | ios::fuera |
| fstream | ios::en | ios::fuera |
Planteamiento del problema : Para leer y escribir un archivo en C++.
Ejemplos:
Input : Welcome in techcodeview.com. Best way to learn things. -1 Output : Welcome in techcodeview.com. Best way to learn things.>
A continuación se muestra la implementación mediante el uso clases ifstream y ofstream .
C++
/* File Handling with C++ using ifstream & ofstream class object*/> /* To write the Content in File*/> /* Then to read the content of file*/> #include> /* fstream header file for ifstream, ofstream,> >fstream classes */> #include> using> namespace> std;> // Driver Code> int> main()> {> >// Creation of ofstream class object> >ofstream fout;> >string line;> >// by default ios::out mode, automatically deletes> >// the content of file. To append the content, open in ios:app> >// fout.open('sample.txt', ios::app)> >fout.open(>'sample.txt'>);> >// Execute a loop If file successfully opened> >while> (fout) {> >// Read a Line from standard input> >getline(cin, line);> >// Press -1 to exit> >if> (line ==>'-1'>)> >break>;> >// Write line in file> >fout << line << endl;> >}> >// Close the File> >fout.close();> >// Creation of ifstream class object to read the file> >ifstream fin;> >// by default open mode = ios::in mode> >fin.open(>'sample.txt'>);> >// Execute a loop until EOF (End of File)> >while> (getline(fin, line)) {> > >// Print line (read from file) in Console> >cout << line << endl;> >}> >// Close the file> >fin.close();> >return> 0;> }> |
>
>
Complejidad del tiempo: O(n)
Espacio auxiliar: O(1)
A continuación se muestra la implementación mediante el uso clase fstream .
C++
clasificación rápida
/* File Handling with C++ using fstream class object */> /* To write the Content in File */> /* Then to read the content of file*/> #include> /* fstream header file for ifstream, ofstream,> >fstream classes */> #include> using> namespace> std;> // Driver Code> int> main()> {> >// Creation of fstream class object> >fstream fio;> >string line;> >// by default openmode = ios::in|ios::out mode> >// Automatically overwrites the content of file, To append> >// the content, open in ios:app> >// fio.open('sample.txt', ios::in|ios::out|ios::app)> >// ios::trunc mode delete all content before open> >fio.open(>'sample.txt'>, ios::trunc | ios::out | ios::in);> >// Execute a loop If file successfully Opened> >while> (fio) {> >// Read a Line from standard input> >getline(cin, line);> >// Press -1 to exit> >if> (line ==>'-1'>)> >break>;> >// Write line in file> >fio << line << endl;> >}> >// Execute a loop until EOF (End of File)> >// point read pointer at beginning of file> >fio.seekg(0, ios::beg);> >while> (fio) {> >// Read a Line from File> >getline(fio, line);> >// Print line in Console> >cout << line << endl;> >}> >// Close the file> >fio.close();> >return> 0;> }> |
>
>
Complejidad del tiempo: O(n)
Espacio auxiliar: O(1)
C++
Q: write a single file handling program in c++ to reading and writing data on a file.> #include> #include> > using> namespace> std;> main()> {> >int> rno,fee;> >char> name[50];> > >cout<<>'Enter the Roll Number:'>;> >cin>>rno;> > >cout<<>'
Enter the Name:'>;> >cin>>nombre;> > >cout<<>'
Enter the Fee:'>;> >cin>>tarifa;> > >ofstream fout(>'d:/student.doc'>);> > >fout<' '<' '/write data to the file student fout.close(); ifstream fin('d:/student.doc'); fin>>rno>>nombre>>tarifa; //leer datos del archivo estudiante fin.close(); corte<' '<' '< return 0; }> |
>
>
Complejidad del tiempo: O(1)
Espacio auxiliar: O(1)
C++
// Q: WA C++ file handling program to read data from the file called student.doc> #include> #include> using> namespace> std;> main()> {> >int> rno,fee;> >char> name[50];> > >ifstream fin(>'d:/student.doc'>);> > >fin>>rno>>nombre>>tarifa;>//read data from the file student> > >fin.close();> > >cout<' '<' '< return 0; }> |
>
>
Complejidad del tiempo: O(1)
Espacio auxiliar: O(50)