elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿Como guardar literalmente un string en una lista doblemente enlazada?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Como guardar literalmente un string en una lista doblemente enlazada?  (Leído 1,461 veces)
jucarlos

Desconectado Desconectado

Mensajes: 2


Ver Perfil
¿Como guardar literalmente un string en una lista doblemente enlazada?
« en: 23 Marzo 2022, 04:26 am »

Tengo un archivo grupo.dat similar a lo siguiente

|        i        |        Correo                       |  Nombre                            |
|-------------+------------------------------+--------------------------------|
|        0        |       a@mail.mx                |  a                                      |
|        1        |       b@mail.mx                |  b                                      |
|        2        |       c@mail.mx                |  c                                       |

Donde extraigo cada linea y la guardo en un arreglo de strings

Código:
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <string.h>
#define path "grupo.dat"

using namespace std;

typedef struct key_value
{
    char index[50];
    char mail[50];
    char firstname[50];
    char lastname1[50];
    char lastname2[50];
} student;

struct node {
    string data;
    struct node *next;
    struct node *prev;
    int size;
};

int main()
{
    FILE *file = fopen(path, "r");
    if(!file) exit(1);

    char buffer[114];
    int row_count = 0;
    int field_count = 0;

    student students[58];
    string toostudents[28];
    int i = 0;
    while(fgets(buffer, sizeof(buffer), file))
    {
        field_count = 0;
        row_count++;
        if(row_count == 1) continue;

        char *field = strtok(buffer, "|");
        while(field)
        {
            if(field_count == 0) strcpy(students[i].index, field);
            if(field_count == 1) strcpy(students[i].mail, field);
            if(field_count == 2) strcpy(students[i].lastname1, field);
            if(field_count == 3) strcpy(students[i].lastname2, field);
            if(field_count == 4) strcpy(students[i].firstname, field);

            field = strtok(NULL, "|");
            field_count++;
        }
        i++;
    }
    fclose(file);

    int j = 0;
    for(int i = 3; i < 58; i++)
    {
        if(i > 2 && i%2!=0)
        {
            if(j > 28) break;
            toostudents[j] = string(students[i].lastname1) + students[i].lastname2 + students[i].firstname;
            j++;
        }
    }

    string aux = toostudents[0];
    cout << aux << endl;
    struct node* list = NULL;
    list->prev = NULL;
    list->data = aux;
    list->next = NULL;
    list->size = 1;

    cout << "Data: " << list->data << endl;

    return 0;
}

Yo me lo imagino como <-[prev, data, next]->, donde para cada data, le pertenece un reglon asociado. Pero al momento de correr mi programa me da un error, alguien que me pueda ayudar a solucionarlo o optimizar lo que ya tengo hecho. Por su ayuda gracias.

O tambien si pudiera guardar la estructura student como :

Código:
struct node {
    student data;
    struct node *next;
    struct node *prev;
    int size;
};


« Última modificación: 23 Marzo 2022, 04:34 am por jucarlos » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda...Lista doblemente enlazada
Java
goll9d 2 3,650 Último mensaje 22 Enero 2012, 04:50 am
por goll9d
ayuda con lista doblemente enlazada
Programación C/C++
gibi77 3 3,709 Último mensaje 7 Marzo 2012, 07:47 am
por nirvguy
Ayuda con lista doblemente enlazada
Programación C/C++
falconez 2 9,039 Último mensaje 16 Diciembre 2013, 01:35 am
por falconez
Insertar enmedio de una lista doblemente enlazada
Programación C/C++
BrendiisFox 3 3,493 Último mensaje 16 Septiembre 2015, 21:05 pm
por ivancea96
lista doblemente enlazada
Programación C/C++
d91 1 1,943 Último mensaje 19 Octubre 2015, 04:06 am
por d91
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines