Pilas a Ficheros... ¡AYUDA PORFAVOR!
Publicado por Tomas (1 intervención) el 01/06/2022 08:08:26
Hola, estoy tratando de guardar en un fichero los datos de la pila, a lo cual, me crea el archivo de texto pero no me guarda nada, es decir está vacío, alguien podría indicarme donde está el error? Muchas gracias!
#include <iostream>
#include <stdlib.h>
#include <queue>
#include <fstream>
using namespace std;
struct nodo {
int num;
struct nodo *sgte;
};
typedef nodo *punteroPila;
void push (punteroPila &p, int val) {
punteroPila aux;
aux = new (struct nodo);
aux -> num = val;
aux -> sgte = p;
p = aux;
}
int pop (punteroPila &p){
int num;
punteroPila aux;
aux = p;
num = aux ->num;
p = aux -> sgte;
delete (aux);
return num;
}
void MostrarPila(punteroPila p){
punteroPila aux;
aux = p;
while (aux!= NULL){
cout << " \t " << aux->num;
aux = aux = aux -> sgte;
}
}
void menu() {
cout << " \n ****** Menu General *******\n";
cout << " \n 1. Ingresar datos a la pila";
cout << " \n 2. Extraer datos de la pila";
cout << " \n 3. Mostrar datos de la pila";
cout << " \n 0. Salir \n";
cout << " \n Ingrese su opcion: ";
}
int main() {
string nombreArchivo = "Datos.txt";
ofstream archivo;
archivo.open(nombreArchivo.c_str(), fstream::out);
punteroPila p = NULL;
int datos;
int opc;
int numx;
do{
menu();
cin >> opc;
switch(opc) {
case 1:
for (int j=0; j < 4; j++){
cout << "\n Ingrese el dato: ";
cin >> datos;
push (p,datos);
cout << "\n Agregado con exito \n";
}
break;
case 2:
numx = pop(p);
cout << "\n Eliminado con exito n";
break;
case 3: {
cout << "\n ***** Datos de la Pila *****\n";
cout << " \n ";
if (p!=NULL)
MostrarPila(p);
else
cout << "\n En estos momentos no hay elementos \n";
break;
}
case 0: {
cout<<"\n\n\n Programa Finalizado \n";
exit(1);
break;
}
}
cout << "\n ";
system("pause");
archivo.close();
}
while (opc!=4);
return 0;
}
#include <iostream>
#include <stdlib.h>
#include <queue>
#include <fstream>
using namespace std;
struct nodo {
int num;
struct nodo *sgte;
};
typedef nodo *punteroPila;
void push (punteroPila &p, int val) {
punteroPila aux;
aux = new (struct nodo);
aux -> num = val;
aux -> sgte = p;
p = aux;
}
int pop (punteroPila &p){
int num;
punteroPila aux;
aux = p;
num = aux ->num;
p = aux -> sgte;
delete (aux);
return num;
}
void MostrarPila(punteroPila p){
punteroPila aux;
aux = p;
while (aux!= NULL){
cout << " \t " << aux->num;
aux = aux = aux -> sgte;
}
}
void menu() {
cout << " \n ****** Menu General *******\n";
cout << " \n 1. Ingresar datos a la pila";
cout << " \n 2. Extraer datos de la pila";
cout << " \n 3. Mostrar datos de la pila";
cout << " \n 0. Salir \n";
cout << " \n Ingrese su opcion: ";
}
int main() {
string nombreArchivo = "Datos.txt";
ofstream archivo;
archivo.open(nombreArchivo.c_str(), fstream::out);
punteroPila p = NULL;
int datos;
int opc;
int numx;
do{
menu();
cin >> opc;
switch(opc) {
case 1:
for (int j=0; j < 4; j++){
cout << "\n Ingrese el dato: ";
cin >> datos;
push (p,datos);
cout << "\n Agregado con exito \n";
}
break;
case 2:
numx = pop(p);
cout << "\n Eliminado con exito n";
break;
case 3: {
cout << "\n ***** Datos de la Pila *****\n";
cout << " \n ";
if (p!=NULL)
MostrarPila(p);
else
cout << "\n En estos momentos no hay elementos \n";
break;
}
case 0: {
cout<<"\n\n\n Programa Finalizado \n";
exit(1);
break;
}
}
cout << "\n ";
system("pause");
archivo.close();
}
while (opc!=4);
return 0;
}
Valora esta pregunta


0