Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: palacio29 en 11 Septiembre 2016, 22:23 pm



Título: Ven algo raro en este codigo basico con structs? en C
Publicado por: palacio29 en 11 Septiembre 2016, 22:23 pm
Hola

Tengo que hacer un programa en el cual a partir de un archivo .csv que se encuentra en mi escritorio, lo que tengo que hacer es leerlo y guardarlo en un arreglo. Este arreglo es un tipo de dato creado por mi (struct)
El tema es que cuando ejecuto el programa no sale nada, no tira error, simplemente queda la consola en negro.
En el archivo .csv estan los datos de 10 puntos (x e y).

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct punto
  5. {
  6.    int x;
  7.    int y;
  8.  
  9. };
  10. typedef struct punto tipoPunto;
  11.  
  12. void LECTURA (tipoPunto arreglo[10]);
  13.  
  14. int main()
  15. {
  16.    tipoPunto arreglo[10];
  17.    LECTURA(arreglo);
  18.  
  19.    return 0;
  20. }
  21. void LECTURA (tipoPunto arreglo[10])
  22. {
  23.    FILE*arch;
  24.    int i=0,j=0;
  25.    arch=fopen("C:\\Users\\Pablo-PC\\Desktop\\puntos.csv","r");
  26.    while (!feof(arch))
  27.    {
  28.        fscanf(arch,"%d,%d\n",&arreglo[i].x,&arreglo[i].y);
  29.        i++;
  30.    }
  31.    fclose(arch);
  32.  
  33.        for (j=0;j<10;j++)
  34.    {
  35.        printf ("Punto %d = %d - %d",i,arreglo[j].x,arreglo[j].y);
  36.    }
  37.  
  38. }


Título: Re: Ven algo raro en este codigo basico con structs? en C
Publicado por: class_OpenGL en 11 Septiembre 2016, 22:46 pm
He ejecutado el código y funciona perfectamente. Este tema ya ha salido en este foro. Probablemente sea porque el antivirus, al ver que usas archivos, por alguna razón, te bloquea la aplicación hasta que se asegure que es segura. Para probar esta teoría, desconecta el antivirus, ejecuta la aplicación y mira si sigue pasando lo mismo. Si la aplicación se ejecuta bien después de desactivar el antivirus, simplemente actívalo de nuevo, ejecuta la aplicación y espera a que el antivirus determine que la aplicación es segura.

P.D.: Una cosilla, en mi opinión, es mejor que uses rutas locales en vez de globales, pero eso es cuestión de gustos y necesidades :D


Título: Re: Ven algo raro en este codigo basico con structs? en C
Publicado por: BloodSharp en 11 Septiembre 2016, 22:50 pm
Ahí te lo arreglé, no verificaste si el archivo estaba bien abierto y el for se iba de rango probablemente:

Código
  1. int main()
  2. {
  3. tipoPunto arreglo[10];
  4. LECTURA(arreglo,sizeof(arreglo)/sizeof(tipoPunto));
  5. return 0;
  6. }
  7.  
  8. void LECTURA(tipoPunto*arreglo,int tamanio)
  9. {
  10. FILE*arch;
  11. int i=0,j=0;
  12. arch=fopen("puntos.csv","r");
  13. if(arch)
  14. {
  15. while(!feof(arch))
  16. {
  17. fscanf(arch,"%d,%d\n",&arreglo[i].x,&arreglo[i].y);
  18. i++;
  19. }
  20. fclose(arch);
  21. }
  22. for(j=0;(j<i)&&(j<tamanio);j++)
  23. {
  24. printf("Punto %d = %d - %d\n",j+1,arreglo[j].x,arreglo[j].y);
  25. }
  26. }


B#


Título: Re: Ven algo raro en este codigo basico con structs? en C
Publicado por: ivancea96 en 11 Septiembre 2016, 22:51 pm
¿Tienes el csv con este formato?
Código:
8,95
5,62
10,4
0,0
8,95
5,62
10,4
0,0
8,95
5,62

Sin comas tras la Y, vamos. Por lo demás, es correcto.


Título: Re: Ven algo raro en este codigo basico con structs? en C
Publicado por: palacio29 en 11 Septiembre 2016, 22:55 pm
Hola

Gracias a todos, el problema era el archivo csv que lo habia hecho en celdas separadas en excel, al final iba cada punto en una unica celda separada por comas.