Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: carlosjazzc1 en 30 Mayo 2016, 19:21 pm



Título: Problema en Algoritmo Basico de Ejercicio en C++
Publicado por: carlosjazzc1 en 30 Mayo 2016, 19:21 pm
Citar
Al llegar a la parte de el Nombre del Usuario
Código:
cin.getline(nombre, 30)
se salta este y no me permite ingresar la cadena de texto. Y pasa directamente al calculo de las horas empleadas


Código:
#include<iostream>
#include<string.h>
#include <stdlib.h>
#include <conio.h>
using namespace std;


    //SUJETOPROFESION
int horas_variable,num_empleados[10], z, i, empleo;
float sueldo1;
char obre, arq, limp;
char nombre[30];
string tip_empl;
    //PAGA
int obre_paga40 = 20;
int obre_pagaextra = 25;
int limpiador_paga20 = 15;
int limpiador_pagaextra = 25;
int ing_paga40 = 60;
int ing_pagaextra = 85;

int main(){
cout<<"*Calculo de pago de Trabajador*\n\n";
cout<<"*******************************";
cout<<("\nArea de el Empleado: ");
cout<<("\n 1. Obrero");
cout<<("\n 2 Limpiador");
cout<<("\n 3. Ingenierio\n\t");
cout<<"\tEsperando dato. . .\t";
cin>>empleo;

    switch(empleo)
    { case 1:
    cout<<endl<<"Cantidad de obreros.\t"<<endl;
    cin>>num_empleados[z];
    for(i=0;i<num_empleados[z];i++){
            cout<<endl<<"Usuario del obrero.\t"<<endl;
            cin.getline(nombre,30);
            cout<<endl<<"Usuario: "<<nombre<<endl;
            cout<<endl<<"Cuantas horas empleadas?.\t"<<endl;
            cin>>horas_variable;
            if(horas_variable<=40){
                sueldo1=horas_variable*obre_paga40;
                cout<<"El sueldo relativo es:"<<" "<<sueldo1<<"Bolivares Fuertes"<<endl;}
                if(horas_variable>40){
                    sueldo1=800+(25*(horas_variable-40));
                    cout<<"El sueldo relativo es:"<<" "<<sueldo1<<"Bolivares Fuertes"<<endl;}
                    getch();
                    system("cls" );


                }
    }
}


Me gustaria saber por que pasa esto, que estoy ignorando?


Título: Re: Problema en Algoritmo Basico de Ejercicio en C++
Publicado por: MAFUS en 30 Mayo 2016, 19:53 pm
Te puede quedar el '\n' en el buffer stdin y es lo que recoge getline.


Título: Re: Problema en Algoritmo Basico de Ejercicio en C++
Publicado por: carlosjazzc1 en 3 Junio 2016, 05:00 am
eso era amigo use cin.ignore()