Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/06/2015, 07:23
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Programa para consultar datos struct

Buenas tardes. Bienvenido al foro.

Prueba a limpiar el buffer de lectura.

Código C++:
Ver original
  1. std::cin.ignore( std::numeric_limits< int >::max( ) );

La línea anterior elimina 'n' caracteres del buffer de lectura (la purga terminará si llega a un salto de línea). 'n' viene dado por numeric_limits<>::max( ) y equivale, en este caso, al int más alto que soporte tu sistema, que normalmente será 2^31-1.

También te hubiese valido algo tal que:

Código C++:
Ver original
  1. std::cin.ignore( 1000000 );

pero implica introducir valores directamente en el código y esa es una práctica a evitar.
En cualquier caso lo suyo sería homogeneizar un poco el sistema, podrías usar únicamente cin.

Código C++:
Ver original
  1. // Equivalente a fgets(localidad,30,stdin);
  2. cin.read( localidad, 30 );

No se qué grado de libertad tienes, pero yo quitaría los char[] y usaría std::string en su lugar.

Y, como remate final, en C++ la palabra clave "struct" no es necesaria cuando vas a declarar una variable:

Código C++:
Ver original
  1. // Aquí si tienes que usar struct
  2. struct oficina{
  3.              int numero;
  4.              long CP;
  5.              char nombre[40];
  6.              char direccion[40];
  7.              char ciudad[40];
  8.              char municipio[40];
  9.              };
  10.  
  11.  
  12. // Pero aquí no            
  13. oficina lista[200];

Un saludo