Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Archivo de texto es una secuencia de caracteres organizadas en líneas terminadas por un carácter
de nueva línea. En estos archivos se pueden almacenar canciones, fuentes de programas, base de
datos simples, etc. Los archivos de texto se caracterizan por ser planos, es decir, todas las letras
tienen el mismo formato y no hay palabras subrayadas, en negrita, o letras de distinto tamaño o
ancho. Esto quiere decir, entre otras cosas, que toda la información almacenada en un archivo
de texto puede ser visualizada por un procesador de textos o un editor cualquiera
Archivo binario es una secuencia de bytes que tienen una correspondencia uno a uno con un
dispositivo externo. Así que no tendrá lugar ninguna traducción de caracteres. Además, el número
de bytes escritos (leídos) será el mismo que los encontrados en el dispositivo externo. Ejemplos de
estos archivos son Fotografías, imágenes, texto con formatos, archivos ejecutables (aplicaciones),
etc.
En C/C++ el manejo de ficheros es tan fácil de aplicar como si estuviéramos trabajando la entrada y
salida estándar (pantalla y teclado),
En el archivo de cabecera fstream.h se define las clases ifstream, ostream y fstream mediante
el uso de estas tendremos acceso a todas las funciones para manejo de archivo, operaciones de
lectura, escritura y lectura/escritura en archivos respectivamente.
if (fichero)
{ }
O la alternativa
if (fichero != NULL)
{ ... }
Para leer todo el contenido del fichero, para comprobar si se ha podido abrir (y no intentar
leer de un fichero inexistente) usaríamos "eof", que típicamente usaremos dentro de un
bloque repetitivo "while" así:
while (! fichero.eof() )
{.. .}:
Ejemplo 1 (usando ofstream)
#include <conio.h>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream salida("TEXTO1.TXT"); // CREAR REFERENCIA AL ARCHIVO DE TEX
TO
if(entrada == 0)
{
cout << "ERROR AL ABRIR EL ARCHIVO.";
getch();
return 0;
}
entrada >> nombre >> nota; // DEL ARCHIVO SE LEE DE MANERA SIMILAR
QUE CON EL CIN
cout << nombre << " " << nota << endl;
entrada >> nombre >> nota;
cout << nombre << " " << nota << endl;
entrada >> nombre >> nota;
cout << nombre << " " << nota << endl;
getch();
#include <iostream>
#include <fstream>
#include <string.h>
ofstream archivoS("venta.txt");
if(archivoS.fail()){
cout<<"Error al abrir archivo para crearlo"; system("pause");
exit(1);
}
do{
cout<<"Descripcion articulo: ";
fflush(stdin);gets(descripcion);
cout<<"Costo Unidad: $"; cin>>cu;
cout<<"Cantidad: "; cin>>cant;
inver = cu*cant;
archivoS<<descripcion <<";" <<cu <<";" <<cant <<";"<<inver
<<endl;
cout<<"Desea crear registro archivo: [S]i. [N]o ";
cin>>op;
}while(toupper(op) == 'S');
archivoS.close();
//abriendo el archivo
system("cls");
ifstream archivoE("venta.txt");
if(archivoE.fail()){
cout<<"Error al abrir archivo para abrirlo"; system("pause");
exit(1);
}
int x=1;
cout<<"Descripcion \t Costo Unidad \t Cantidad \t Total Inversion
" <<endl;
archivoE>>descripcion;
while(!archivoE.eof()){
cout<<"Linea " <<x <<endl; x++;
cout<<descripcion <<endl;
total+=inver;
archivoE>>descripcion;
}
cout<<"Total Inventario $"<<total <<endl;
system("pause");
archivoE.close();
return 0;
Dependiendo de la necesidad que se requiera del archivo, por ejemplo agregar datos a los ya
existentes en el archivo, es necesario especificar el modo de apertura del archivo incluyendo un
parámetro adicional en el constructor. A continuación los modos de apertura:
Si tomamos como referente el ejemplo 3, podemos modificar el modo de apertura del programa
ventas.cpp para que los datos del programa se concatenen en el archivo ventas.txt simplemente
escribiendo el constructor así: ofstream archivo("ventas.txt", ios::app);. Si deseamos que el
programa no sobreescriba un archivo existente especificamos el constructor de ésta manera:
ofstream archivo("ventas.txt", ios::noreplace);. Utilizando los especificadores de modo de
apertura se puede conseguir un mayor control en las operaciones de E/S en archivos.