//te mando este haber si te sirve esta facil
#include <iostream>
#include <fstream>
using namespace std;
#include <stdlib.h>
#include <ctype.h>
class nodo{
public:
nodo(int v, nodo *sig=NULL){
valor = v;
siguiente = sig;
}
private:
int valor;
nodo *siguiente;
friend class Cola;
};
typedef nodo *pnodo;
class Cola{
public:
Cola():primero(NULL), ultimo(NULL){}
~Cola();
void anadir(int v);
int leer();
private:
pnodo primero, ultimo;
};
Cola::~Cola(){
while(primero)
leer();
}
void Cola::anadir(int v){
pnodo nuevo;
nuevo = new nodo(v);
if(ultimo)
ultimo->siguiente = nuevo;
ultimo = nuevo;
if(!primero)
primero=nuevo;
}
int Cola::leer(){
pnodo nodo;
int v;
nodo = primero;
if(!nodo)
return 0;
primero=nodo->siguiente;
v=nodo->valor;
delete nodo;
if(!primero)
ultimo=NULL;
return v;
}
void main(){
ifstream lectura;
ofstream Salida;
int opc, n, tam;
char c;
Cola cola1, cola2;
do{
cout<< "\tMENU\n"
<< "\n1. Insertar Dato"
<< "\n2. Eliminar Dato"
<< "\n3. Copiar de archivo a otro"
<< "\n4. Salir"
<< "\n\n Elija una opcion: ";
cin>> opc;
switch(opc){
case 1:
cout<< "\n\nDigite el valor entero a insertar: ";
cin>> n;
cola1.anadir(n);
break;
case 2:
cout<< "\n\nElemento eliminado: "<< cola1.leer();
break;
case 3:
cout<<"\n\nContenido del archivo 'lectura.txt': \n\n";
lectura.clear();
Salida.clear();
lectura.open("lectura.txt");
Salida.open("numeros.txt", ios::trunc);
if(!lectura || !Salida){
cerr<<"\nError al abrir el archivo\n";
break;
}
tam=0;
while(lectura.get(c)){
cout<<c;
if(isdigit(c)){
cola2.anadir(c);
tam++;
}
};
for(int i=0; i<tam; i++)
Salida.put(cola2.leer());
cout<< "\n\nContenido del archivo 'numeros.txt': \n\n";
Salida.close();
lectura.close();
lectura.clear();
lectura.open("numeros.txt");
if(!lectura)
cerr<<"\nError al abrir el archivo\n";
if(lectura.good())
while(lectura.get(c))
cout<<c;
lectura.close();
break;
case 4:
cout<< "\n\nSaliendo...\n";
break;
default:
cout<< "\n\nOpcion no valida...\n";
}
cout<<endl<< endl;
system("pause");
system("cls");
}while(opc!=4);
}