Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/07/2011, 06:20
v1siond
 
Fecha de Ingreso: julio-2011
Mensajes: 17
Antigüedad: 12 años, 10 meses
Puntos: 0
Pregunta problema con archivos en C

Buenas, he estado practicando archivos en C ultimamente, y el último programa que debo hacer es un registro de votantes, posteriormente realizar una encuesta y generar un nuevo archivo con los resultados. hasta ahí bien; el problema es que los resultados se muestran si o sólo si estás registrado en el archivo "votante", he intentado hacer la busqueda tradicional, pero nunca me encuentra la cedula del votante y ya estoy algo frustrado...les dejaré el código, si me pudieran hechar una mano estaría muy agradecido.

El código es de C, uso en el mensaje "etiqueta PHP" solo para que salga ordenado.

Código PHP:
   #include <stdio.h>
   #include <iostream>
   #include <conio.h>
   #define max 200
   
   
void registrarpersona();
   
void lista();
   
void resultado();
   
void encuesta();
   
    
int main ()
    {
        
int opcion 0;
    
        for(;;)
        {
            
lista();
            
opcion getch();
            switch (
opcion)
            {
                   case 
'1'registrarpersona();
                             break;
                   case 
'2'encuesta();
                             break;
                   case 
'3'resultado();
                             break;
                   case 
'4': exit(0);
            }
        }
    
        
system ("PAUSE");
    }
    
    
void registrarpersona()
    {
          
int edadacumulador =0;
          
char nombre[20], apellido[20], cedula[20];
      
          
FILE *persona;
      
          
printf ("\nIntroduzca los datos del votante en estricto orden\n");
                 
printf ("\ncedula ----- nombre ----- apellido ----- edad\n");
                        
scanf ("%s %s %s %d"cedulanombreapellido, &edad);
          
          if ((
persona=fopen("persona.txt""a+")) == NULL)
          {
                  
printf ("\nError al abrir el archivo\n");
          }
          else
          {
              while (!
feof(stdin))
              {
                      
fprintf (persona"%s %s %s %d\n"cedulanombreapellidoedad);
                      
scanf ("%s %s %s %d",cedula ,nombreapellido, &edad);
                      
acumulador++;
                      if (
acumulador == 200)
                      {
                                     break;
                      }
              }
              
fclose(persona);
          }
      }
      
      
void encuesta()
      {
           
int si 0no 0i;
           
int respuesta 0;
           
           
FILE*encuesta;
               
           for (
i=0i<2i++)
           {
               
printf ("\n¿es factible, económicamente hablando, la integración de Venezuela al mercosur?* 1.-Si 2.-No\n");
               
scanf ("%d", &respuesta);
               if (
respuesta == 1)
               {
                             
si++;
               }
               else
               {
                   if(
respuesta == 2)
                   {
                                
no++;
                   }
                   else
                   {
                       
printf ("\nError, debe seleccionar únicamente las opciones -1- o -2-\n");
                   }
               }
           }
           if ((
encuesta=fopen("encuesta.txt""a+")) == NULL)
           {
                  
printf ("\nError al abrir el archivo\n");
           }
           else
           {
                      
fprintf (encuesta"La cantidad de Respuestas es:\n");
                      
fprintf (encuesta"Si -> %d ---- No -> %d"sino);
              
              
fclose(encuesta);
           }
      }
      
      
void resultado()
      {
           
int edadn=0;
           
char cedulados[20];
           
char cedula[20], nombre[20], apellido[20];
           
int sino;
           
FILE*persona;
           
FILE*encuesta;
           
           
printf ("\nIntroduzca la cedula del votante\n");
           
scanf ("%s",&cedulados);
           if ((
persona=fopen("persona.txt""r+")) == NULL)
           {
                                        
printf ("\nError al abrir el archivo\n");
                                        
           }
           else
           {
               
fscanf(persona,"%s %s %s %d",cedula ,nombreapellido, &edad);
               while(!
feof(persona))
               {
                                    
fscanf(persona,"%s %s %s %d",&cedula ,&nombre, &apellido, &edad);
                                    
strcmp(cedula,cedulados);
                                    if (
n=0)
                                    {
                                            
fclose(persona);
                                            if ((
encuesta=fopen("encuesta.txt""r+")) == NULL)
                                            {
                                                                                
printf ("\nError al abrir el archivo\n");
                                            }
                                            else
                                            {
                                                
printf ("\nResultado - Encuesta\n\n");
                                                
fscanf(encuesta,"%d %d", &si, &no);
                                                
                                                      
printf  ("%d - %d"sino);
                                                      
fscanf(encuesta,"%d %d", &si, &no);
                                                      
printf ("\n\n");
                                                
                                                
fclose(encuesta);
                                            }
                            
printf ("\n");
                                   }
               }
                            
printf ("\nUsted no esta registrado como votante, por lo tanto no puede ver los resultados\n");
                                   
           }
      }
      
                  
      
void lista()
      {
           
printf("\n                         .::Sistema de Encuesta::.\n");
           
printf ("1.-Registrar Votante\n");
           
printf ("2.-Encuesta\n");
           
printf ("3.-Resultados de la Encuesta\n");
           
printf ("4.-salir\n");
           
printf ("\n\n");
      }