Kimossab

Lista whatever...

Dec 30th, 2014
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct Ponto
  5. {
  6.     float x;
  7.     float y;
  8.     struct Ponto *prox;
  9. };
  10.  
  11. typedef struct Ponto ponto;
  12.  
  13. void inicia_lista(ponto *lista)
  14. {
  15.     lista->prox = NULL;
  16. }
  17.  
  18. void auxiliar(ponto *lista, int i)
  19. {
  20.     FILE *fp;
  21.     fp=fopen("dados", "r");
  22.      
  23.     char linha[100];
  24.  
  25.     ponto *tmp=lista;
  26.     while(tmp->prox != NULL)
  27.     {
  28.         tmp=tmp->prox;
  29.     }
  30.      
  31.     ponto *novo=(ponto*) malloc(sizeof(ponto));
  32.  
  33.     inicia_lista(novo); //faltava esta linha, ao fazeres malloc por alguma razao o proximo nao fica com valor nulo, no entanto age como se o fosse mas nunca verifica com o != NULL
  34.      
  35.     tmp->prox=novo;
  36.      
  37.     while(i>0)
  38.     {
  39.         fgets(linha, 100, fp);
  40.         i--;
  41.     }
  42.      
  43.     fscanf(fp, "%f %f \n", &novo->x, &novo->y);
  44.     printf("%f %f \n", novo->x, novo->y);
  45.     //sleep(1);
  46.     fclose(fp);
  47. }
  48.      
  49. void le_ficheiro(ponto *lista)
  50. {
  51.     //sleep(1);
  52.     FILE *fp;
  53.     fp=fopen("dados", "r");
  54.      
  55.     FILE *ficheiro;
  56.     ficheiro=fopen("linhas", "r");
  57.     int a, i=1;
  58.     fscanf(ficheiro, "%i", &a);
  59.     fclose(ficheiro);
  60.      
  61.     char linha[100];
  62.     fgets(linha, 100, fp);
  63.      
  64.     fscanf(fp, "%f %f \n", &lista->x, &lista->y);
  65.     printf("%f %f \n", lista->x, lista->y);
  66.  
  67.     /*ponto *novo=(ponto*) malloc(sizeof(ponto));
  68.     lista->prox=novo;
  69.      
  70.     fscanf(fp, "%f %f \n", &novo->x, &novo->y);
  71.     printf("%f %f \n", novo->x, novo->y);*/
  72. //  sleep(1);
  73.     fclose(fp);
  74.     while(i<a)
  75.     {
  76.         i++;
  77.         auxiliar(lista, i);
  78.     }
  79. }
  80.      
  81. int main()
  82. {
  83.     ponto *lista=(ponto*) malloc(sizeof(ponto));
  84.     inicia_lista(lista);
  85.     le_ficheiro(lista);
  86. }
Advertisement
Add Comment
Please, Sign In to add comment