Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/11/2007, 07:54
HerrFelix
 
Fecha de Ingreso: agosto-2007
Mensajes: 22
Antigüedad: 17 años, 5 meses
Puntos: 0
[Urgente] Problema con getchar y while.

Muchas gracias por leer mi mensaje. Aqui os dejo el bloque de codigo con problemas en cuestion:
El problema en si es en el primer while. La primera vez que entro al do puedo hacer todo bien. Pero cuando selecciono Nueva Insercion me pone :Ingrese nombre del agente intoxicante y enseguida el Ingrese las medidas.... Y no me deja poner el nombre del agente intoxicante, y eso que la condicion del while se cumple asi que deberia dejarme.
Es para un trabajo de la Uni.
Gracias de antemano.

Código:
do
                  {
                      i = 0;
                      // FORMULARIO DE INGRESO DE AGENTE
                      system("CLS");
                      printf("Ingrese el nombre del agente intoxicante: ");
                      while((c = getchar()) != '\n')
                      {
                               agente[i++] = c;
                      }
                      agente[i] = '\0';
                      
                      if(Insertar(&Agentes,agente))
                      {
                          char medidas[30001];
                          
                          strcpy(strcat(agente,".txt"),agente);
                          FILE * archivo;
                          if(archivo = fopen(agente,"w+"))
                          {
                                     printf("\nEscriba las medidas para la desintoxicacion\n");
                                     printf("Maximo 3000 caracteres. Finalice con '#':\n\n");
                          
                                     while((d = getchar()) != '#')
                                     {
                                              fputc(d,archivo);
                                     }
                                     fputc('\0',archivo);
                                     fclose(archivo);
                                     printf("\nInsercion realizada con exito\n\n");
                          }
                          else
                          {
                              // ERROR DE LECTURA
                          }
                      }
                      else
                      {
                          printf("\nEl agente intoxicante ya existe\n\n");
                      }
                      
                      c = d = 'a';
                      printf("1.- Nueva insercion\n");
                      printf("2.- Volver");
                  } while ((subOp = getch()) == '1');