Título: Problema en Algoritmo Basico de Ejercicio en C++
Publicado por: carlosjazzc1 en 30 Mayo 2016, 19:21 pm
Al llegar a la parte de el Nombre del Usuario se salta este y no me permite ingresar la cadena de texto. Y pasa directamente al calculo de las horas empleadas #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()
|