Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/08/2010, 15:27
Avatar de guzzano
guzzano
 
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 13 años, 9 meses
Puntos: 13
Error con la función fwrite.

Tal vez me puedan dar una mano, estoy haciendo algo parecido como un inventario. Todo funciona perfecto, para al momento de introducir los datos en el archivo el primero aparece perfecto y los demás en caracteres extraños.

Código C:
Ver original
  1. struct {
  2.     char  producto[20];
  3.     int   codigo;
  4.     float precio;
  5. } inventario;

Código C:
Ver original
  1. void menu(){
  2.     printf("\n\nMenu:\n=====\n\n");
  3.     printf("1.- Agregar a inventario\n");
  4.     printf("2.- Leer inventario\n");
  5.     printf("3.- Salir \n\n");
  6.     printf("Escoge una opcion: ");fflush(stdout);
  7. datos.opcion = getch();
  8. FILE *db;
  9. db = fopen("DB/inventario.db", "wb");
  10. switch (datos.opcion){
  11.     case '1':
  12.     printf("\nCuantos productos deseas agregar: ");
  13.     scanf("%i", &datos.productos);
  14. for (datos.i = 0 ; datos.i < datos.productos ; datos.i++){
  15.     printf("Introduce el nombre del producto: "); fflush(stdout);
  16.     gets(inventario.producto);
  17.     printf("Introduce el codigo del producto: "); fflush(stdout);
  18.     scanf("%i", &inventario.codigo);
  19.     printf("Introduce el precio del producto: "); fflush(stdout);
  20.     scanf("%f", &inventario.precio);
  21.     fwrite(&inventario, sizeof(inventario), 1, db);
  22. }
  23.     fclose (db);
  24. }
  25. }