Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/02/2011, 05:23
amzhit
 
Fecha de Ingreso: febrero-2011
Mensajes: 4
Antigüedad: 13 años, 8 meses
Puntos: 0
problema a la hora de compilar c

Hola compañeros, Soy un estudiante de segundo de informática, y hasta ahora solo habiamos dado java, y de la noche a la mañana quieren que me convierta en un experto de C, xD.

Esto es unexamen de practicas que hay que realizar, la lógica del contenido es correcta, pero se que tengo muchos errores de compilación debido a mi desconocimiento de C.

Me vendría muy bien que algun experto pudiera decirme que estoy haciendo mal, un saludo.


Código c:
Ver original
  1. /******************************************************************
  2. * Archivo generado autom·ticamente por MetaEdit+
  3. * Nombre:  DE_2_-_Registrar_Jugador.c
  4. * Tipo:    CÛdigo Fuente (.c)
  5. * Autores:
  6. ******************************************************************/
  7.  
  8.  
  9. #include "registrar_Jugador.h"
  10. Reg_equipo equipos;
  11. Reg_alumno alumnos;
  12. Reg_equipo_jugador requip;
  13. Reg_sancion sancion;
  14. int es_valido=0;
  15. FILE *fich;
  16. char equipo[30];
  17. char nif[9];
  18. int fin=0;
  19. char cadena[100];
  20. int ok =0;
  21.  
  22.  
  23. /***********************************************************************
  24. * FunciÛn: Actualizar_Jugador
  25. * DescripciÛn: ------
  26. * Par·metros Entrada:
  27.    - nif_j (Est·ndar):
  28.      
  29.    - nombre_e_v (Est·ndar):
  30.      
  31. * Par·metros Salida: -------
  32. ***********************************************************************/
  33. void  Actualizar_Jugador (int nif, char equipo ) {
  34.     //ESCRIBIR_EQUIPO_JUGADOR (Reg_equipo_jugador , int * );
  35.     fich = fopen("equipo_jugador.txt", "wa");
  36.     fprintf(fich, "%s %s \n", (requip.nombre_equipo),(requip.nif_jugador));
  37.     fclose(fich);
  38.            
  39.        
  40.                
  41.    
  42.    
  43. }
  44.  
  45.  
  46.  
  47. /***********************************************************************
  48. * FunciÛn: Imprimir_Listado
  49. * DescripciÛn: ------
  50. * Par·metros Entrada:
  51.    - listado (Est·ndar):
  52.      
  53.    - nombre_e_v (Est·ndar):
  54.      
  55. * Par·metros Salida: -------
  56. ***********************************************************************/
  57. void  Imprimir_Listado (Reg_alumno  alumnos, char equipo ) {
  58.    // IMPRIMIR_LINEA (char *, int * );
  59.     int existe=1;
  60.     do {
  61.         *alumnos= recuperar();
  62.         if (alumnos==NULL) {
  63.             existe=0;
  64.         }
  65.         else {
  66.         printf("%s %s %s",alumnos.nombre, alumnos.nif, alumnos.direccion);
  67.         }
  68.     } while (existe==1)
  69. }
  70.  
  71.  
  72.  
  73. /***********************************************************************
  74. * FunciÛn: Mostrar_Jugadores
  75. * DescripciÛn: ------
  76. * Par·metros Entrada:
  77.    - nombre_e_v (Est·ndar):
  78.      
  79. * Par·metros Salida: -------
  80. ***********************************************************************/
  81. void  Mostrar_Jugadores (char equipo ) {
  82.     Imprimir_Listado (listado_jugadores , nombre_equipo  );
  83. }
  84.  
  85.  
  86.  
  87. /***********************************************************************
  88. * FunciÛn: Obtener_Alumno_Valido
  89. * DescripciÛn: ------
  90. * Par·metros Entrada: -------
  91. * Par·metros Salida:
  92.    - fin (Flag Descriptivo):
  93.      
  94.    - nif_a_v (Est·ndar):
  95.      
  96. ***********************************************************************/
  97. void  Obtener_Alumno_Valido (char *nif, int *fin ) {
  98.     //Obtener_Alumno (nif *, int * );
  99.        
  100.    
  101.     printf("Inserta el DNI del alumno a insertar en el equipo \n");
  102.     fgets(nif, 9,fich);
  103.     *fin=1;
  104.          
  105.    
  106.        
  107.        
  108. }
  109.  
  110.  
  111.  
  112. /***********************************************************************
  113. * FunciÛn: Obtener_Equipo_Valido
  114. * DescripciÛn: ------
  115. * Par·metros Entrada: -------
  116. * Par·metros Salida:
  117.    - nombre_e_v (Est·ndar):
  118.      
  119. ***********************************************************************/
  120. void  Obtener_Equipo_Valido (char *equipo ) {
  121.     //Obtener_Nombre (nombre_equipo *, int * );
  122.     //char equipo [30];
  123.     printf("En que equipo quieres registrar un alumno ? \n");
  124.     fgets(equipo, 30, stdin);
  125.    void Validar_Equipo ( char equipo , int *es_valido );
  126. }
  127.  
  128.  
  129.  
  130. /***********************************************************************
  131. * FunciÛn: Obtener_Jugador
  132. * DescripciÛn: ------
  133. * Par·metros Entrada: -------
  134. * Par·metros Salida:
  135.    - fin (Flag Descriptivo):
  136.      
  137.    - nif_j (Est·ndar):
  138.      
  139. ***********************************************************************/
  140. void  Obtener_Jugador (char *nif, int *fin ) {
  141.     void Obtener_Alumno_Valido (char *nif, int *fin );
  142.     void Validar_NO_Inscrito (char nif , int *ok );
  143.     void Validar_NO_Sancionado (char nif , int *ok );
  144.    
  145. }
  146.  
  147.  
  148.  
  149. /***********************************************************************
  150. * FunciÛn: Registrar_Jugador
  151. * DescripciÛn: ------
  152. ***********************************************************************/
  153. void  Registrar_Jugador ( ) {
  154.    
  155.    
  156.     void Obtener_Equipo_Valido (char *equipo );
  157.     inicializar_lista();
  158.     void Obtener_Jugador (char *nif , int *fin );
  159.     void Actualizar_Jugador (int nif , char equipo  );
  160.     void Mostrar_Jugadores (char equipo  );
  161.    
  162.    
  163. }
  164.  
  165.  
  166.  
  167. /***********************************************************************
  168. * FunciÛn: Validar_Equipo
  169. * DescripciÛn: ------
  170. * Par·metros Entrada:
  171.    - nombre_e (Est·ndar):
  172.      
  173. * Par·metros Salida:
  174.    - es_valido (Flag Descriptivo):
  175.      
  176. ***********************************************************************/
  177. void  Validar_Equipo (char equipo, int *es_valido ) {
  178.     //LEER_EQUIPOS (Reg_equipo *, int * );
  179.     if ((fich = fopen("equipos.txt", "r")) == NULL){
  180.         mostrar_error(6);
  181.          }
  182.    
  183.  
  184.     while(fgets(cadena,100,fich)){
  185.         sscanf(cadena,"%s %s %s ",(equipos.nombre_equipo),(equipos.nif_delegado),(equipos.telefono));
  186.         if (strcmp(equipos.nombre_equipo,equipo)==0){
  187.             *es_valido=1;
  188.             fflush(stdin);
  189.         }
  190.        
  191.     }
  192.     fclose(fich);
  193.     if (es_valido==0) {
  194.         mostrar_error(4);
  195.         void Obtener_Equipo_Valido (char *equipo);
  196.        
  197.     }
  198.    
  199.    
  200. }
  201.  
  202.  
  203.  
  204. /***********************************************************************
  205. * FunciÛn: Validar_Existe
  206. * DescripciÛn: ------
  207. * Par·metros Entrada:
  208.    - nif_a (Est·ndar):
  209.      
  210. * Par·metros Salida:
  211.    - es_valido (Flag Descriptivo):
  212.      
  213. ***********************************************************************/
  214. void  Validar_Existe (char nif, int *es_valido ) {
  215.     /*LEER_ALUMNOS (Reg_alumno *, int * );*/
  216.     if ((fich = fopen("alumnos.txt", "r")) == NULL){
  217.         mostrar_error(6);
  218.     }
  219.    
  220.     while(fgets(cadena,100,fich)&& es_valido==0){
  221.         sscanf(cadena,"%s %s %s ",(alumnos.nombre),(alumnos.nif),(alumnos.direccion));
  222.         if (strcmp(alumnos.nif,nif)==0){
  223.             *es_valido=1;
  224.             fflush(stdin);
  225.         }
  226.        
  227.     }
  228.     fclose(fich);
  229.     if (*es_valido==1) {
  230.         void insertar( alumnos);
  231.     }
  232.     else {
  233.         mostrar_error(4);
  234.         void Obtener_Jugador(char *nif, int *fin);
  235.        
  236.     }
  237.    
  238.  
  239. }
  240.  
  241.  
  242.  
  243. /***********************************************************************
  244. * FunciÛn: Validar_NO_Inscrito
  245. * DescripciÛn: ------
  246. * Par·metros Entrada:
  247.    - nif_a_v (Est·ndar):
  248.      
  249. * Par·metros Salida:
  250.    - ok (Flag Descriptivo):
  251.      
  252. ***********************************************************************/
  253. void  Validar_NO_Inscrito (char nif, int *ok ) {
  254.     //LEER_EQUIPO_JUGADOR (Reg_equipo_jugador *, int * );
  255.     if ((fich = fopen("equipo_jugador.txt", "r")) == NULL){
  256.         mostrar_error(6);
  257.     }
  258.    
  259.    
  260.     while(fgets(cadena,100,fich)){
  261.         sscanf(cadena,"%s %s ",(requip.nombre_equipo),(requip.nif_jugador));
  262.         if (strcmp(requip.nif_jugador,nif)==0){
  263.             mostrar_error(3);
  264.             borrar();
  265.             void Obtener_Alumno_Valido (char *nif, int *fin );
  266.             fflush(stdin);
  267.         }
  268.        
  269.     }
  270.     fclose(fich);
  271. }
  272.  
  273.  
  274.  
  275. /***********************************************************************
  276. * FunciÛn: Validar_NO_Sancionado
  277. * DescripciÛn: ------
  278. * Par·metros Entrada:
  279.    - nif_a_v (Est·ndar):
  280.      
  281. * Par·metros Salida:
  282.    - ok (Flag Descriptivo):
  283.      
  284. ***********************************************************************/
  285. void  Validar_NO_Sancionado (char nif, int *ok ) {
  286.     //LEER_SANCIONES (, int * );
  287.     if ((fich = fopen("sanciones.txt", "r")) == NULL){
  288.         mostrar_error(6);
  289.     }
  290.    
  291.     while(fgets(cadena,100,fich)){
  292.         sscanf(cadena,"%s %s %s ",(sancion.id),(sancion.nif),(sancion.motivos));
  293.         if (strcmp(sancion.nif,nif)==0){
  294.             mostrar_error(2);
  295.             void Obtener_Alumno_Valido (char *nif, int *fin );
  296.             fflush(stdin);
  297.         }
  298.        
  299.     }
  300.     fclose(fich);
  301.    
  302. }

Este es el modulo registrar_jugador, el cual se supone que hace funcionar el resto del programa, a través de la funcion con su mismo nombre y que va lanzando el resto de funciones, el trabajo consta de una librería libmtp.c, y de un cluster donde se guarda un array de structs para después poder imprimirlos por pantalla.

Los errores que me da son basicamente estos:
Conflicting types para todos los tipos de struct utilizados, los cuales estan declarados en el fichero "libmtp.c"

Nested functions are disabled. Este en particular me deja bastante loco.

Voy a ir poniendo el resto de codigo en otros posts para que no ralle tanto, se que estoy pasando por alto pequeños detalles de compilacion que desconozco.