[ 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");
   }


}




Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...