Código
#include <iostream.h> #include <conio.h> #include <stdio.h> #include<string.h> class nodo { public: nodo(int num, char name[20], nodo *sig = NULL) { numero=num; strcpy(nombre,name); siguiente=sig; }//constructor private: int numero; char nombre[20]; nodo *siguiente; friend class cola; }; typedef nodo *pnodo; //definimos un tipo de dato personalizaodo. Tipo puntero de la clase NODO class cola { public: cola() : primero(NULL), ultimo(NULL) { } ~cola(); void encolar(int num, char name[]); int desencolar(); void Mostrar(); void Guardar(int cont); // private: pnodo primero, ultimo; }; cola paciente; cola::~cola() { while(primero) desencolar(); } void cola::encolar(int num, char name[]) { pnodo nuevo; nuevo = new nodo(num,name); if(ultimo) ultimo->siguiente = nuevo; ultimo = nuevo; if(!primero) primero = nuevo; } int cola::desencolar() { pnodo nodo; /* variable auxiliar para manipular nodo */ int v; /* variable auxiliar para retorno */ nodo = primero; if(!nodo) return 0; /* Si no hay nodos en la pila retornamos 0 */ primero = nodo->siguiente; //v = nodo->valor; delete nodo; if(!primero) ultimo = NULL; return 1; } /*Procedimiento Mostrar Cola*/ /*--------------------------------------------------------*/ void cola::Mostrar(){ // pnodo aux; // aux=primero; // while(aux!=NULL){ // cout<<"\n\nnumero de paciente "<<aux->numero; cout<<"\nNombre "<<aux->nombre; // aux=aux->siguiente; // } // } // /********************Guarda en txt*************************/ void cola::Guardar(int cont){ FILE *ptr=fopen("C:\\SaveStruct.txt","at+"); /*en esta parte no se si lo estoy hacien bien*/ fwrite(&paciente,sizeof(paciente),1,ptr); //intento guardar los nodos como una estructura normal fclose(ptr); cout<<"Operacion exitosa"; getch(); } void IngresoDatos(){ int no; char nombre[15]; clrscr(); cout<<"Ingrese no: ";cin>>no; cout<<"Ingrese nombre: ";fgets(nombre,15,stdin); if(nombre[strlen(nombre)-1]=='\n') nombre[strlen(nombre)-1]='\0'; paciente.encolar(no, nombre); getch(); } void CargarTxt(){ clrscr(); cout<<"en construccion"; getch(); } int main() { cola Cola1; cola Cola2; int contador=0; int num=0; int no; char nombre[15]; cola call; do{ clrscr(); cout<<"\n1. Ingresar datos \n"; cout<<"2. Mostrar cola\n"; cout<<"3. Desencolar\n" ; cout<<"4. Guardar en txt\n"; cout<<"5. Leer txt\n"; cout<<"6. Salir"; cout<<"\n Seleccione su opcion: "; cin>>num; switch(num){ case 1: cout<<"\nIngreso de datos \n"; IngresoDatos(); contador=contador+1; break; case 2: clrscr(); cout<<"Mostrar cola\n"; paciente.Mostrar(); // barajar(Cola1,Cola2); getch(); break; case 3: cout<<"desencolando"; paciente.desencolar(); getch(); break; case 4: cout<<"Guardando"; paciente.Guardar(contador); getch(); break; case 5: cout<<"cargando"; CargarTxt(); } }while(num!=6); }//encola y desencola correcta el problema guardar esa cola en txt y despues cargarla