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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Problema con bucle infinito en: 30 Octubre 2016, 20:20 pm
Hola a toda la comunidad, les deseo prospero dia!!
Resulta que tengo un codio que me produce un bucle infinito y las verdad no se porque me  
produce eso. Lo que hago es algo simple. Cargo dos archivos y en uno de los archivos quiero modificar el stock, osea actualizarlo, nada mas. A continuacion les paso el codigo:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. struct materiales{
  6. int codart, stock, stockmin;
  7. char desc[20];
  8. float precio;
  9. };
  10. struct ventas{
  11. int cod,cant;
  12. };
  13.  
  14.  
  15. //ACA YO CARGO EL ARCHIVO AMTERIALES
  16. main(){
  17. FILE *materiales;
  18. FILE *archivoventa;
  19. fpos_t pos;
  20. int op;
  21. struct materiales mat;
  22. struct ventas ven;
  23. if((materiales=fopen("materiales.dat","wb"))!=NULL){
  24. do{
  25. printf("\n\tIngrese el codigo del articulo");
  26. scanf("%d", &mat.codart);
  27. printf("\n\tIngrese un breve descripcion");
  28. gets(mat.desc);
  29. printf("\n\tIngrese stock actual del articulo");
  30. scanf("%d", &mat.stock);
  31. printf("\n\tIngrese stock minimo");
  32. scanf("%d", &mat.stockmin);
  33. printf("\n\tPor utimo ingrese precio");
  34. scanf("%f", &mat.precio);
  35. fwrite(&mat,sizeof(mat),1,materiales);
  36. printf("\n\t¿Desea ingresar otro articulo? [1]-para SI // [0]-Para NO");
  37. scanf("%d", &op);
  38. }while(op!=0);
  39. }else{
  40. printf("\n\nError de archivo");
  41. }
  42. fclose(materiales);
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51. //ACA YO CARGO EL ARCHIVO VENTAS
  52.  
  53.  
  54.  
  55.    int opc;
  56.  
  57.    if((archivoventa=fopen("ventas.dat","wb"))!=NULL){
  58. do{
  59.    printf("\n\tIngrese codigo del articulo");
  60. scanf("%d", &ven.cod);
  61. printf("\n\tIngrese cantidad vendida del articulo");
  62. scanf("%d", &ven.cant);
  63. fwrite(&ven,sizeof(ven),1,archivoventa);
  64. printf("\n\t¿Desea registrar otra venta? [1]-Para SI // [0]-Para NO");
  65. scanf("%d", &opc);
  66. }while(opc!=0);
  67.    }else{
  68. printf("\nError de archivo");
  69.    }
  70.    fclose(archivoventa);
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.    //ACA ES DONDE ESTA LA FALLA
  82.  
  83.  
  84.    if((archivoventa=fopen("ventas.dat","rb"))!=NULL){
  85.        if((materiales=fopen("materiales.dat","r+b"))!=NULL){
  86. fread(&ven,sizeof(ven),1,archivoventa);
  87. while(!feof(archivoventa)){
  88. fread(&mat,sizeof(mat),1,materiales);      
  89. while(!feof(materiales)){
  90. if(mat.codart==ven.cod){
  91. mat.stock=mat.stock-ven.cant;
  92. printf("\n\nEl stock entonces quedo en %d", mat.stock);
  93. fseek(materiales, -1*(sizeof(mat)),SEEK_CUR);
  94. fwrite(&mat,sizeof(mat),1,materiales);
  95. }
  96. fread(&mat,sizeof(mat),1,materiales);
  97. printf("\nHola");    
  98.         }
  99.         rewind(materiales);
  100. fread(&ven,sizeof(ven),1,archivoventa);
  101. printf("\nHola2");  
  102.    }
  103.    }else{
  104.    printf("\nError archivo");
  105.    }
  106.    fclose(materiales);
  107. }else{
  108.      printf("\nError archivo");
  109.    }  
  110. fclose(archivoventa);  
  111. printf("\n\t\tError3");
  112.  
  113.  
  114. if((materiales=fopen("materiales.dat","rb"))!=NULL){
  115. fread(&mat,sizeof(mat),1,materiales);
  116. while(!feof(materiales)){
  117. printf("\n\nEl codigo de articulo es %d",mat.codart);
  118. printf("\n\nEl stock actualizado quedo asi %d",mat.stock);
  119. fread(&mat,sizeof(mat),1,materiales);
  120. }
  121.    }else{
  122. printf("Error");
  123.    }
  124.    fclose(materiales);
  125. }
  126.  
  127.  



Les agradeceria si me pueden ayudar!!!!!


Mod: Los titulo deben ser descriptivos
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines