[ Foro de C ]

No imprime la lista

03-Jun-2019 23:57
Invitado (buga_3001)
0 Respuestas

Hola, el problema ocurre cuando deseo imprimir la lista ya que no aparece nada en pantalla. El archivo es un .csv que viene de la siguiente manera

2005,Enero,Ford,123658
2005,Febrero,Ford,225632

¡AYUDA! POR FAVOR:


#include <stdio.h>
#include <stdlib.h>

typedef struct nodo{
   int anio;
   char mes[20];
   char marca[30];
   long cantidad;
   struct nodo* siguiente;
} nodo;

nodo* primero=NULL;
nodo* ultimo=NULL;

FILE *archivo;

void crear();
void imp();

int main()
{
  crear();
  imp();
}


void crear(){
   archivo=fopen("datos.csv", "r");
   if (archivo==NULL){
       printf("Error al abrir\n");
   }
   else {
       while(!feof(archivo)){
           nodo* nuevo =(nodo*)malloc(sizeof(nodo));
           if (nuevo==NULL){
               printf("Error en la memoria");
           }
           fscanf("%[^,],%[^,],%[^,],%[^\n]",nuevo->anio,nuevo->mes,nuevo->marca,nuevo->cantidad);
           if (primero == NULL){
               primero = nuevo;
               primero -> siguiente=NULL;
               ultimo = nuevo;
           }
           else {
               ultimo -> siguiente = nuevo;
               nuevo -> siguiente = NULL;
               ultimo = nuevo;
           }
       }
   }
}

void imp(){
   nodo* actual = (nodo*)malloc(sizeof(nodo));
   actual=primero;
   if (primero!=NULL){
       while (actual!=NULL){
           printf("%d %s %s %ld", actual->anio, actual->mes, actual->marca, actual->cantidad);
           actual = actual -> siguiente;
       }

   }

   else {
       printf("La lista esta vacia\n");
   }


}




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)