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

Listo investigando mire que fprintf era para imprimir un texto deseado en el archivo. Así que probé con printf y funciono. Aqui dejo el codigo completo, por si luego alguien necesita la solucion.
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <conio2.h>
  5.  
  6. struct {
  7.     char  producto[20];
  8.     int   codigo;
  9.     float precio;
  10. } inventario, *p_inv;
  11.  
  12. struct {
  13.     char  producto[20];
  14.     int   codigo;
  15.     float precio;
  16. } inventario2;
  17.  
  18. struct {
  19.     int opcion;
  20.     int productos;
  21.     int i;
  22. } datos;
  23.  
  24. void menu(){
  25.     printf("\n\nMenu:\n=====\n\n");
  26.     printf("1.- Agregar a inventario\n");
  27.     printf("2.- Leer inventario\n");
  28.     printf("3.- Salir \n\n");
  29.     printf("Escoge una opcion: ");fflush(stdout);
  30. datos.opcion = getch();
  31. FILE *meter, *leer;
  32.  
  33. switch (datos.opcion){
  34.     case '1':
  35.     meter = fopen("DB/inventario.db", "a");
  36.     printf("\nCuantos productos deseas agregar: ");
  37.     scanf("%i", &datos.productos);
  38. for (datos.i = 0 ; datos.i < datos.productos ; datos.i++){
  39.     printf("Introduce el nombre del producto: "); fflush(stdout);
  40.     scanf("%s", &inventario.producto);
  41.     printf("Introduce el codigo del producto: "); fflush(stdout);
  42.     scanf("%i", &inventario.codigo);
  43.     printf("Introduce el precio del producto: "); fflush(stdout);
  44.     scanf("%f", &inventario.precio);
  45.     fwrite(&inventario, sizeof(inventario), 1, meter);}
  46.     fclose (meter);
  47.     break;
  48.     case '2':
  49.     leer = fopen("DB/inventario.db", "r");
  50.     while (!feof(leer)) {
  51.     if (fread (&inventario, sizeof(inventario), 1, leer)){
  52.     printf("%s %i %f", inventario.producto, inventario.codigo, inventario.precio);}}
  53.     fclose (leer);
  54.     break;
  55. }
  56. }
  57.  
  58. int main(){
  59. menu();
  60. return 0;
  61. }

Última edición por guzzano; 27/08/2010 a las 18:02