Ver Mensaje Individual
  #8 (permalink)  
Antiguo 03/07/2011, 14:21
kurama19901
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema con Ciclo Infinito y Condicionales en C

Código C:
Ver original
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4. #include<time.h>
  5. #define MAX 100
  6. #define True 1
  7. #define False 0
  8.  
  9.  
  10. typedef float vec_precios[MAX];
  11. typedef int Cant_HabP[MAX];
  12. typedef char cadena[MAX];
  13. typedef int Fecha[3];
  14.  
  15. typedef struct
  16. {
  17.     float Presupuesto_I;
  18.     Fecha FechaIni;
  19.     int Hab;
  20.     int Pisos;
  21.     cadena Mat_Hab[MAX][MAX];
  22. }DatosH;
  23.  
  24. Fecha ContF;
  25.  
  26. typedef struct
  27. {
  28.     int N_Hab;
  29.     int N_Serv;
  30.     int N_Menu;
  31.     cadena vec_Hab;
  32.     cadena vec_Serv;
  33.     cadena vec_Menu;
  34.     vec_precios P_Hab;
  35.     vec_precios P_Serv;
  36.     vec_precios P_Menu;
  37.     cadena D_Menu;
  38.     cadena D_Serv;
  39.    
  40. }Precios;
  41.  
  42. typedef struct
  43. {
  44.     cadena Nom;
  45.     cadena Apellido;
  46.     long int Ced;
  47.     Fecha CheckIn;
  48.     Fecha CheckOut;
  49.     int Hora;
  50.     cadena t_hab;
  51.     int A;
  52.     int N;
  53.     int Cama_Ad;
  54.     int CantP;
  55.    
  56. }Usuario;
  57.  
  58. typedef struct
  59. {
  60.     long int CB;
  61.     cadena NombreB;
  62.     cadena ApellidoB;
  63. }Basura;
  64.  
  65.  
  66. void Llenar_RegH(DatosH dh, FILE *finicializar)
  67. {      
  68.                         Cant_HabP CHP;
  69.                         int i,j;
  70.                         //char pausa;
  71.                             finicializar = fopen("inicializar.in","r");
  72.                             if (finicializar == NULL){
  73.                             printf("No abrio el Archivo\n");
  74.                             }else{
  75.                                 fscanf(finicializar,"%f",&dh.Presupuesto_I);
  76.                                 printf("%f\n",dh.Presupuesto_I);
  77.                                 for (i = 0; i < 3; i++)
  78.                                 {
  79.                                 fscanf(finicializar,"%d",&dh.FechaIni[i]);
  80.                                 printf("%d ",dh.FechaIni[i]);
  81.                                 }
  82.                                 fscanf(finicializar,"%d",&dh.Hab);
  83.                                 printf("\n%d ",dh.Hab);
  84.                                 fscanf(finicializar,"%d",&dh.Pisos);
  85.                                 printf("%d\n",dh.Pisos);
  86.                                 for(i = 0; i < dh.Pisos; i++){
  87.                                     fscanf(finicializar,"%d",&CHP[i]);
  88.                                     printf("%d",CHP[i]);
  89.                                     for(j = 0; j < CHP[i] ; j++)
  90.                                     {
  91.                                     fscanf(finicializar,"%[^0-9]s",dh.Mat_Hab[i][j]);
  92.                                     printf("%s",dh.Mat_Hab[i][j]);
  93.                                     }
  94.                                 }
  95.                             }
  96.                         fclose(finicializar);
  97.                     }
  98.                    
  99. void precios(Precios ph, FILE *Preciosk)
  100. {
  101.                 int i;
  102.                 //char pausa;
  103.                 Preciosk = fopen("precios.in","r");
  104.                 if (Preciosk == NULL){
  105.                 printf("No abrio el Archivo\n");
  106.                 }else{
  107.                 fscanf(Preciosk,"%d",&ph.N_Hab);
  108.                 printf("%d ",ph.N_Hab);
  109.                 fscanf(Preciosk,"%d",&ph.N_Serv);
  110.                 printf("%d ",ph.N_Serv);
  111.                 fscanf(Preciosk,"%d",&ph.N_Menu);
  112.                 printf("%d",ph.N_Menu);
  113.                 for(i = 0; i < ph.N_Hab; i++)
  114.                 {
  115.                 fscanf(Preciosk,"%[^0-9]s",&ph.vec_Hab[i]);
  116.                 printf("%s",&ph.vec_Hab[i]);
  117.                 fscanf(Preciosk,"%f",&ph.P_Hab[i]);
  118.                 printf("%f",ph.P_Hab[i]);
  119.                 }
  120.                
  121.                 for (i = 0; i < ph.N_Serv; i++)
  122.                 {
  123.                     fscanf(Preciosk,"%[^0-9]s",&ph.vec_Serv[i]);
  124.                     printf("%s",&ph.vec_Serv[i]);
  125.                     fscanf(Preciosk,"%f",&ph.P_Serv[i]);
  126.                     printf("%f",ph.P_Serv[i]);
  127.                     fscanf(Preciosk,"%[^0-9]s",&ph.D_Serv[i]);
  128.                     printf("%s",&ph.D_Serv[i]);
  129.                 }
  130.                 for (i = 0; i < ph.N_Menu; i++)
  131.                 {
  132.                     fscanf(Preciosk,"%[^0-9]s",&ph.vec_Menu[i]);
  133.                     printf("%s",&ph.vec_Menu[i]);
  134.                     fscanf(Preciosk,"%f",&ph.P_Menu[i]);
  135.                     printf("%f",ph.P_Menu[i]);
  136.                     fscanf(Preciosk,"%[^0-9]s",&ph.D_Menu[i]);
  137.                     printf("%s",&ph.D_Menu[i]);
  138.                 }
  139.                
  140. }
  141. }
  142.  
  143.  
  144. void Operacion(Usuario us, FILE *operacion)
  145. {
  146.     Basura bs;
  147.     int F,i;
  148.     long int Cdd;
  149.     char P;
  150.     char A = "A";
  151.     char N = "N";
  152.     operacion = fopen("Operaciones.in","r");
  153.     if (operacion == NULL){
  154.     printf("No abrio el Archivo\n");
  155.     }else
  156.     {
  157.     while (feof(operacion))
  158.     fscanf(operacion,"%d",&F);
  159.     {
  160.     if (F==0)
  161.         {
  162.             ContF[1]++;
  163.         }
  164.         else
  165.         {
  166.             if (F==1)
  167.             {
  168.                 fscanf(operacion,"%d",&us.CheckIn[1]);
  169.                 printf("%d",us.CheckIn[1]);
  170.                 fscanf(operacion,"%d",&us.CheckIn[2]);
  171.                 fscanf(operacion,"%d",&us.CheckIn[3]);
  172.                 fscanf(operacion,"%d",&us.CheckOut[1]);
  173.                 fscanf(operacion,"%d",&us.CheckOut[2]);
  174.                 fscanf(operacion,"%d",&us.CheckOut[3]);
  175.                 fscanf(operacion,"%[^0-9]s",us.t_hab);
  176.                 fscanf(operacion,"%d",&us.CantP);
  177.                 fscanf(operacion,"%c",&P);
  178.                 us.A++;
  179.                 fscanf(operacion,"%d",&us.Ced);
  180.                 fscanf(operacion,"%[^0-9]s",us.Nom);
  181.                 fscanf(operacion,"%[^0-9]s",us.Apellido);
  182.                
  183.                 for (i = 0; i < (us.CantP-1); i++)
  184.                 {
  185.                     fscanf(operacion,"%c",&P);
  186.                     if (P == A) //COmparacion de Caracteres
  187.                     {
  188.                         us.A++;
  189.                         fscanf(operacion,"%d",&bs.CB);
  190.                         fscanf(operacion,"%[^0-9]s",bs.NombreB);
  191.                         fscanf(operacion,"%[^0-9]s",bs.ApellidoB);
  192.                     }
  193.                     else
  194.                     {
  195.                         us.N++;
  196.                         fscanf(operacion,"%[^0-9]s",bs.NombreB);
  197.                         fscanf(operacion,"%[^0-9]s",bs.ApellidoB);
  198.                     }
  199.  
  200.                 }
  201.                
  202.             }
  203.            
  204.             /*if(F==2)
  205.             {
  206.                 fscanf(operacion,"%d",&Cdd);
  207.                 fscanf(operacion,"%d",&us.Hora);
  208.             }*/
  209.            
  210.             if(F==3)
  211.             {
  212.                
  213.             }
  214.         }
  215.         }
  216.     }fclose(operacion);
  217.                            
  218. }
  219. main()
  220. {
  221.     Precios ph;
  222.     Usuario us;
  223.     DatosH dh;
  224.    
  225.     //Declaracion de Archivos
  226.     FILE *Preciosk, *operaciones, *sobrecarga, *inicializar;
  227.     FILE *reservaciones, *contabilidad, *reportes, *sobrecarg;
  228.    
  229.     //Archivos de Entrada
  230.     inicializar=fopen("inicializar.in","r");
  231.     Preciosk=fopen("precios.in","r");
  232.     operaciones=fopen("operaciones.in","r");
  233.     sobrecarga=fopen("sobrecarga.in","r");
  234.     //Archivos de Salida
  235.     reservaciones=fopen("reservaciones.out","r");
  236.     contabilidad=fopen("contabilidad.out","r");
  237.     reportes=fopen("reportes.out","r");
  238.     sobrecarg=fopen("sobrecarga.out","r");
  239.    
  240.    
  241.             //Llenar_RegH(dh,inicializar);
  242.             printf("\n");
  243.             //precios(ph,Preciosk);
  244.             Operacion(us,operaciones);
  245.  
  246. }

lo que quiero hacer es que
en la variable F valla cargando cada linea y vea si es 0,1,2,3,4,etc dependiendo de la cantidad de operaciones justo como en este formato de abajo
justo agarra 2 operacion 0
entra en condicional if(F==0) suma1 a contf y despues verifica de nuevo hasta
que consigue operacion 1
hay que agarre los datos que vendrian siendo la parte desde donde estan las 2 fechas 18 04 2011 y 24 04 2011
hasta la linea del nombre N Andreina Martinez sale del if(F==1) y vuelve a verificar si F==0 etc
en si hay mas operaciones pero apenas estoy con la primera que no logro hacer que funcione

0 ----------------------------------------------------------->Operacion 0
0 ----------------------------------------------------------->Operacion 0
1 ----------------------------------------------------------->Operacion 1
18 04 2011 24 04 2011
DOBLE
3
A 12345678 Alberto Martinez
A 13456789 Margarita Hernandez
N Andreina Martinez
0 ----------------------------------------------------------->Operacion 0
0 ----------------------------------------------------------->Operacion 0
3 -----------------------------------------------------------> Operacion 3
12345678 14:05
6 --------------------------------------------------------> operacion 6
12345678
2
CAM_A 6
CAJ_F 4
5 ------------------------------------------------__> operacion 5
4
ESP_C
LOM_M
JUG_L
MALTA
0
0
0
0
7 ----------------------------------------------------> operacion 7
1
b 18 04 2011 22 04 2011
0
0
4 --------------------------------------------------> operacion 4
12345678 10:50
8
8

Última edición por kurama19901; 03/07/2011 a las 14:32