Tema: Ayuda
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/07/2008, 09:51
guille_el3
 
Fecha de Ingreso: abril-2008
Mensajes: 264
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Ayuda

Ante nada, una recomendación:
Si puedes partir el flujo de tu programa en 6 partes, probablemente puedes llevar esas seis partes a funciones distintas, de manera que tu código sea mas facil de leer, y cuando falle puedas ir a buscarlo de manera más sencilla.
Por ejemplo, podrias hacer algo como:

Código:
#include <stdio.h>
#include <stdlib.h>
#define MAX 30

struct datos               
{
       char nombre[MAX];
       int fijo;
       int movil;
};

void borra_buffer_teclado();

int main(int argc, char *argv[])
{
  int opcion, i;
  int datos_agenda;   //el numero de contactos que tenemos en nuestra agenda
  struct datos *contactos;
  FILE *fichero;
  
imprimirMenu();

opcion = obtenerOpcion();

  switch(opcion)
  {
      case 1:
                      
           fichero = fopen("datos.txt", "r");
if(fichero == NULL)
               printf("\nERROR\n");
           else{
datos_agenda = getDatosAgenda(fichero);
contactos = getContactos(fichero,datos_agenda);
introducirNuevoContacto(contactos);
}
           fclose(fichero);                                          
           
....
  }  
  
  system("PAUSE");	
  return 0;
}
Ahora, independientemente de lo anterior, ¿sabes en que lugar falla? ¿solo deja de funcionar o te da un error?
Para averiguar donde falla no se si hay una forma más feliz de debuggear en C (salvo con herramientas de debug que me parecen igual de infelices =P) que usar printf's en aquellos lugares donde piensas que puede fallar.

Particularmente imprimiria algo por pantalla dentro del do/while que lee los caracteres, y luego dentro de las partes importantes del switch.

Suerte!
__________________
Saludoss
Guille