Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - PipeCR

#1
Programación C/C++ / Manejo de listas y punteros
16 Septiembre 2016, 05:00 AM
Hola, tengo un problema al correr mi programa, se cae al correrlo, ya llevo algunas horas buscando el problema, como soy estudiante aun me cuesta un poco, agradeceria la ayuda.
El codigo debe de ingresar lo datos de un archivo .txt en una lista enlazada (Todos los datos), aca abajo dejo el codigo.

Código (cpp) [Seleccionar]

#include <iostream>
#include <cstdio>
#include "Empleados.h"
#include "Empleados.h"
#include "Interfaz.h"
#include "Nodo.h"
using namespace std;

int main()
{
    Nodo *Cabeza;
    Cabeza = new Nodo;
    FILE *Archivo1;
    Archivo1 = fopen("Empleados.txt","r+");
    if(Archivo1==NULL){
        cout<<"No se pudo abrir el archivo.";
        return 0;
    }
    Nodo *Ant;
    Nodo *Aux;
    Aux = Cabeza;
    int Contador = 1;
    while(feof(Archivo1)==0){
            if(Aux->getActual()==NULL){
                Empleados *NuevaLista;
                NuevaLista = new Empleados();
                Aux->setActual(NuevaLista);
            }
            for(int i=0;i<15&&feof(Archivo1)==0;i++){
                char Caracter;
                for(int j=0;j<150;j++){
                    Caracter = fgetc(Archivo1);
                    Aux->getActual()->setMatrizE(i, j, Caracter);
                    if(Caracter=='@')j=200;
                    Contador++;
                }
                Aux->getActual()->setPosE(i, Contador);
            }
            Aux->setAnt(Ant);
            Nodo *Nuevo;
            Nuevo = new Nodo();
            Aux->setSig(Nuevo);
            Ant= Aux;
            Aux = Aux->getSig();
    }
    fclose(Archivo1);
    return 0;
}




Tambien se usan estas dos clases:

Código (cpp) [Seleccionar]

class Empleados
{
    public:
        Empleados();
        virtual ~Empleados();

        //Gets y Sets
        void setMatrizE(int y, int x, char a);
        char getMatrizE(int y, int x);
        void setPosE(int x, int dato);
        int getPosE(int x);

        //Metodos
        void Eliminar(int y, int x);
        bool Buscar(char x[9]);
        int Buscar2(char x[9]);
        void ModificarCed(int y, char z[9]);
        void ModificarNom(int y,char z[50]);
        void ModificarCargo(int y, char z[50]);
        void Insertar(char x[150]);


    protected:

    private:
        char MatrizE[15][150];
        int PosE[15];
};





class Nodo
{
    public:
        Nodo();
        virtual ~Nodo();
        void AgregarNodo(Nodo *c, Empleados *Nuevo);
        void setSig(Nodo *EmpleadosSig);
        void setAnt(Nodo *EmpleadosAnt);
        Nodo *getSig();
        Nodo *getAnt();
        Empleados *getActual();
        void setActual(Empleados *EmpleadoActual);


    protected:

    private:
        Empleados *Actual;
        Nodo *Sig;
        Nodo *Ant;
};