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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  duda con array de estructuras
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: duda con array de estructuras  (Leído 1,683 veces)
_OLAYA_

Desconectado Desconectado

Mensajes: 129



Ver Perfil
duda con array de estructuras
« en: 16 Diciembre 2016, 21:50 pm »

tengo un fichero txt organizado en columnas, la primera tiene un numero entero del 1 en adelante, la segunda tiene un nombre y la tercera un precio. El caso es que no soy capaz de cargar el fichero en mi programa.  

Código
  1. #include<stdio.h>
  2. #define CadNom 30
  3. #define NumPro 100
  4. struct carta
  5. {
  6.    int CodProducto;
  7.    char nombre[CadNom];
  8.    float precio;
  9.  
  10. };
  11. struct carta productos[NumPro];
  12.  
  13. void cargarCarta(FILE *f, struct carta productos[NumPro], int *tamanio);
  14. void imprimirCarta(struct carta productos[NumPro], int tamanio);
  15. main()
  16. {
  17.    FILE *fich;
  18.    int tamanio;
  19.  
  20.    fich = fopen("carta.txt", "r");
  21.  
  22.    if(fich == NULL) return -1;
  23.  
  24.    cargarCarta(fich, productos, &tamanio);
  25.  
  26.    fclose(fich);
  27.  
  28.    imprimirCarta(productos, tamanio);
  29. }
  30.  
  31. void cargarCarta(FILE *f, struct carta productos[NumPro], int *tamanio)
  32. {
  33.    /* CARGA LA CARTA AL PROGRAMA */
  34.    int i=0;
  35.  
  36.    while(fscanf(f, "%d" "%s" "%f", &productos[i].CodProducto, productos[i].nombre, &productos[i].precio) != EOF)
  37.    {
  38.        i++;
  39.    }
  40.    *tamanio = i;
  41. }
  42.  
  43. void imprimirCarta(struct carta productos[NumPro], int tamanio)
  44. {
  45.    /*SE IMPRIME LA CARTA*/
  46.    int i=0;
  47.  
  48.    printf("Codigo del producto\tNombre\t\tProducto");
  49.    printf("\n el tamanio es %d", tamanio);
  50.    while (i < tamanio)
  51.    {
  52.        printf("%d\n", productos[i].CodProducto);
  53.        i++;
  54.    }
  55.  
  56. }
  57.  


Mod: No escribir en mayúsculas


« Última modificación: 16 Diciembre 2016, 21:55 pm por engel lex » En línea


_OLAYA_

Desconectado Desconectado

Mensajes: 129



Ver Perfil
Re: duda con array de estructuras
« Respuesta #1 en: 17 Diciembre 2016, 01:11 am »

Ya lo he conseguido, para hacerme menos lió he separado los fscanf

Código
  1. fscanf(f, "%d", &productos[i].CodProducto);
  2. fscanf(f, "%s", productos[i].nombre);
  3. fscanf(f, "%f", &productos[i].precio);


Y luego un fallo de concentración, después del valor de cada precio tenía un espacio y el símbolo del euro en el fichero.



En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[C] - Duda estructuras « 1 2 »
Programación C/C++
h0oke 14 7,182 Último mensaje 21 Mayo 2010, 22:34 pm
por Littlehorse
[Duda] Estructuras « 1 2 »
ASM
xv0 15 9,227 Último mensaje 12 Febrero 2013, 10:18 am
por fary
Duda con estructuras
Dudas Generales
fins94 1 2,142 Último mensaje 4 Junio 2013, 18:55 pm
por ivancea96
Duda con estructuras C
Programación C/C++
David8 7 2,687 Último mensaje 5 Mayo 2014, 12:42 pm
por David8
Array de estructuras + funciones
Programación C/C++
maikelowen 7 3,743 Último mensaje 4 Enero 2015, 02:25 am
por Yoel Alejandro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines