Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: falconez en 18 Enero 2014, 02:25 am



Título: Ayuda con creacion de archivo txt en una lista doble
Publicado por: falconez en 18 Enero 2014, 02:25 am
Saludos colegas, tengo un problema con el siguiente codigo .. Al parecer no inserta de forma correcta en una lista doble; el problema tambien es que al generar el archivo.txt sale vacio.

//EJERCICIO DE ARCHIVO CON LISTA DOBLEMENTE ENLAZADA
//Generar numeros aleatorio y descomponer cada uno sumando el resultado de
//cada numero. Realizar todo en una lista doblemente enlazada.

    #include <iostream>
    #include <fstream>
    #include <string>
    #include <cstdlib>
     
    using namespace std;
     
    struct datos {
        int num;
    };
     
    struct node {
        datos data;
        node *left;
        node *right;
    };
     
     
    node * newList();
    node * insert_right(node *list, node data);
    void printListAsc(node *current);
    void printNode(node *current);
     int llenar_archivo(char path[]) ;
     int rand_number(int min, int max);
   
     
    int main(void) {
       
        node *head = newList();
        node *current = head;
     
        srand((unsigned int) time(0));
        char name[] = "numerosAleatorio.log";
        llenar_archivo(name);
               
            return 0;
    }
     
     
    node * newList() {
        node *nuevo;
        nuevo = new node;
     
        nuevo->data.num = -1;
        nuevo->right = nuevo;
        nuevo->left = nuevo;
     
        return nuevo;
    }
     
   
    void printNode(node *current) {
        cout << current->data.num << endl;
    }
   
   
    void printListAsc(node *head) {
        node *current = head;
        while (current->right != head) {
            current = current->right;
            printNode(current);
        }
    }
   
   
    node * insert_right(node *list, node data) {
     
        node *nuevo;
        nuevo = new node;
     
        nuevo->data = data.data;
     
        nuevo->left = list;
        nuevo->right = list->right;
        list->right = nuevo;
        nuevo->right->left = nuevo;
     
        return nuevo;
    }


     
     int llenar_archivo(char path[]) {
         node *current;
ofstream myFile;
node myData;
myFile.open(path);

if(myFile.is_open())
{
    int Digito,num,Valor;
   
 
for(int i=0; i < 500;i++){
   
int s=0;   
myData.data.num=rand_number(1,1000);

while (Valor > 0){
   
Digito = Valor % 10;
Valor /= 10;
cout<<Digito<<" ";
s=s+Digito;
Valor=myData.data.num;
current = insert_right(current, myData);
}

cout<<endl<<"SUMA: "<< s<<endl;       
}
   
myFile.close();
return 1;
}

return 0;
}


int rand_number(int min, int max) {   
return rand() % (max - min + 1) + min;
}




Título: Re: Ayuda con creacion de archivo txt en una lista doble
Publicado por: engel lex en 18 Enero 2014, 02:39 am
altes de reponderte algo, usa las etiquetas GeSHI del foro (arriba de los emoticonos "un cuadro desplegable que dice GeSHI) escojes C y pegas allí tu codigo para que sea mas facil de leer :P