elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ejercicio simple estructuras
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ejercicio simple estructuras  (Leído 2,246 veces)
Ja_90

Desconectado Desconectado

Mensajes: 51



Ver Perfil
Ejercicio simple estructuras
« en: 13 Octubre 2014, 09:33 am »

Buenas, ando por aca queriendo aclarar el porque no me ejecuta de manera correcta este codigo.

 Aclaro: En el codigo las variables estan en ingles por que necesito practicar mi ingles ;D

Código
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using std::cout;
  5. using std::cin;
  6. using std::endl;
  7. using std::string;
  8.  
  9. struct Employees   // struct's name
  10. {
  11.    string name;
  12.    string sex;
  13.    float pay;
  14. };
  15.  
  16. int main()
  17. {
  18.    int number;  // # employees  
  19.  
  20.    cout << "Enter # Employees: ";
  21.    cin >> number;
  22.  
  23.    struct Employees data[number];  // declare data type of Employees
  24.  
  25.    int i;
  26.  
  27.    for(i=0 ; i<number ; i++)   // Loop to save all data
  28.    {
  29.        cout << "Name: ";
  30.        getline(cin,data[i].name);
  31.        cout << "Sex: ";
  32.        getline(cin,data[i].sex);
  33.        cout << "Payment: ";
  34.        cin >> data[i].pay;
  35.    }
  36.  
  37.   //Loop to print out
  38.  
  39.    for(i=0 ; i<number ; i++)
  40.    {
  41.        cout << data[i].name << endl;
  42.        cout << data[i].sex << endl;
  43.        cout << data[i].pay <<"\n\n";
  44.    }
  45.  
  46.    return 0;
  47. }
  48.  

Cuando lo ejecuto me sale esto:
------------------------------------------

Enter # Employees: 2   // (coloco el #)

Name: Sex:

----------------------------------
No me deja ingresar el Nombre, sino que me sale seguido Sex cuando deberia salir en la siguiente linea luego de yo digitar el nombre y que quede guardado en:
Código
  1. data[i].name
  2.  
Muchas gracias por su colaboracion, cualquier consejo, critica constuctiva bienvenida sea.


En línea

:D  ::::Ja_90::::   :D
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Ejercicio simple estructuras
« Respuesta #1 en: 13 Octubre 2014, 09:42 am »

O usas getline para pedir el dinero, o pones cin.ignore() después del cin para ignorar el salto de linea.


En línea

DeMoNcRaZy


Desconectado Desconectado

Mensajes: 420


$~*|_


Ver Perfil
Re: Ejercicio simple estructuras
« Respuesta #2 en: 13 Octubre 2014, 11:54 am »

Buenas,

No se si es exactamente lo que estás buscando pero puedes probar con esto y nos comentas:

Código
  1. #include <iostream>
  2. #include <string>
  3. #include <stdlib.h>
  4.  
  5. using namespace std;
  6.  
  7. struct Employees   // struct's name
  8. {
  9.    string name;
  10.    string sex;
  11.    float pay;
  12. };
  13.  
  14. int main()
  15. {
  16.    int number;  // # employees  
  17.  
  18.    cout << "Enter # Employees: ";
  19.    cin >> number;
  20.  
  21.    struct Employees data[number];  // declare data type of Employees
  22.  
  23.    int i;
  24.  
  25.    for(i=0 ; i < number ; i++)   // Loop to save all data
  26.    {
  27.        cout << "Name: ";
  28.        cin >> data[i].name;
  29.        cout << "Sex: ";
  30.        cin >> data[i].sex;
  31.        cout << "Payment: ";
  32.        cin >> data[i].pay;
  33.    }
  34.  
  35.   //Loop to print out
  36.  
  37.    for(i=0 ; i<number ; i++)
  38.    {
  39.        cout << "\n" << data[i].name << endl;
  40.        cout << data[i].sex << endl;
  41.        cout << data[i].pay <<"\n\n";
  42.    }
  43.  
  44.    system("PAUSE"); // paramos el programa para que no se cierre
  45.    return 0;
  46. }
En línea

Esta página web no está disponible - Google Chrome
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Ejercicio simple estructuras
« Respuesta #3 en: 13 Octubre 2014, 16:40 pm »

No me deja ingresar el Nombre, sino que me sale seguido Sex cuando deberia salir en la siguiente linea luego de yo digitar el nombre
Ese problema se debe al uso intercalado del operador ">>" y la función getline, para solucionarlo se debe eliminar el resto de la linea después de pedir el numero de empleados y, como ya te comento ivancea96, después de pedir el pago. Un programa de ejemplo sobre el uso de la función ignore se encuentra en el tema getline().

Y la declaración del array "data" indica el numero de elementos de este mediante un valor calculado en tiempo de ejecución, el problema: su soporte depende del compilador (no es parte del estándar de C++), por ello mejor utiliza un objeto de la clase vector (hay muchos ejemplos sobre el uso de esa clase en la base de datos de los foros, solo es cuestión de utilizar el motor de búsqueda).

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Ja_90

Desconectado Desconectado

Mensajes: 51



Ver Perfil
Re: Ejercicio simple estructuras
« Respuesta #4 en: 13 Octubre 2014, 20:33 pm »

Muchas gracias por sus respuestas, lo corregi utilizando el cin.ignore();.....gracias ivancea96

rir3760 ...Aun no he visto vectores...estoy de autodidacta, asi que cuando llegue alli hare uso de lo que me dices....Ademas creo que podre ver la diferencia entre usar ambos, espero...Igualmente muchas gracias por tus consejos.

YuseTist...Creo que no era lo que estaba buscando, igualmente gracias por tu respuesta y la verdad no uso system("PAUSE") ya que no tiene portabilidad, lo hacia cuando usaba Windows, ahora en linux es totalmente inutil, me da error, por eso ya asi lo haga en Windows no lo utilizo.

Muchas gracias.
En línea

:D  ::::Ja_90::::   :D
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Explicacion de un simple ejercicio
Java
camaleon123 1 2,732 Último mensaje 6 Enero 2010, 06:07 am
por Leyer
[Ayuda] Ejercicio simple
Programación C/C++
Cracky7 6 2,562 Último mensaje 16 Febrero 2012, 01:17 am
por rir3760
Problema con ejercicio de clase (Estructuras de selección)
Programación C/C++
foreground 5 2,777 Último mensaje 7 Marzo 2013, 22:50 pm
por leosansan
Ejercicio simple de C++
Programación C/C++
sjav96 0 1,134 Último mensaje 20 Marzo 2016, 19:27 pm
por sjav96
[DUDA][Estructuras - C++] Habrá una forma mas simple de hacer?
Programación C/C++
Alape04 4 2,469 Último mensaje 12 Junio 2016, 17:52 pm
por Alape04
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines