Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Tarea de c++

Estas en el tema de Tarea de c++ en el foro de C/C++ en Foros del Web. //al momento de ponerle la opcion 1 capturarDatos se salta y no puedo introducir el nombre del articulo y inventario #include<iostream> using namespace std; #include<string> ...
  #1 (permalink)  
Antiguo 24/02/2013, 13:21
 
Fecha de Ingreso: febrero-2013
Mensajes: 3
Antigüedad: 11 años, 2 meses
Puntos: 0
Pregunta Tarea de c++

//al momento de ponerle la opcion 1 capturarDatos se salta y no puedo introducir el nombre del articulo y inventario


#include<iostream>
using namespace std;
#include<string>
using std::getline;
using std::string;

class Inventario
{
private:
string Nombre;
string Descripcion;
int Costo;
string num_invent;
public:
Inventario()
{
Nombre="Silla";
Descripcion="Butaca para estudiante";
Costo=550;
num_invent="DGITI200428";
}
void capturarDatos();
void presentaDatos();
};

void Inventario::capturarDatos()
{
system("CLS");
cout<<"\t Metodo capturar datos"<<"\n\n";
cout<<"Dame el nombre del articulo: ";getline(cin,Nombre); cout<<"\n\n";
cout<<"Dame la descripcion del articulo: ";getline(cin,Descripcion); cout<<"\n\n";
cout<<"costo: "; cin>>Costo; cout<<"\n\n";
cout<<"Numero de inventario: "; getline(cin,num_invent);cout<<"\n\n";
system("pause");
}


void Inventario::presentaDatos()
{
system("CLS");
cout<<"\tMetodo presenta datos"<<"\n\n";
cout<<"Nombre del articulo: "<<Nombre<<"\n\n";
cout<<"Descripcion del articulo: "<<Descripcion<<"\n\n";
cout<<"costo: "<<Costo<<"\n\n";
cout<<"numero de inventario: "<<num_invent<<"\n\n";
system("pause");
}



int main()
{

Inventario datos; int opc;
do
{
system("CLS");
cout<<"\t Menu principal"<<"\n\n";
cout<<"1-Capturar Datos"<<endl;
cout<<"2-Presentar datos"<<endl;
cout<<"3-Salir del menu"<<"\n\n";
cout<<"Opcion: ";cin>>opc;
switch(opc)
{
case 1: datos.capturarDatos();break;
case 2: datos.presentaDatos();break;
case 3: cout<<"Saleindo del progama....";
system("pause");break;
default: cout<<"Opcion no valida"<<endl;system("pause");break;
}
}while(opc!=3);

}
  #2 (permalink)  
Antiguo 24/02/2013, 14:48
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 10 meses
Puntos: 28
Respuesta: Tarea de c++

Pause es en mayusculas.
  #3 (permalink)  
Antiguo 24/02/2013, 17:01
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Tarea de c++

Y ademas el codigo está mal indentado, con una mejor presentacion seguramente te habrian ayudado antes ok? Antes de seguir con tu proyecto deberias aprender a indentar, este enlace http://sourceforge.net/apps/mediawik...le=Indentation te servirá; con esto consigues que tu codigo sea ordenado y claro, inteligible para ti y para cualquier otra persona con la que lo compartas (aqui se incluye tanto la gente del equipo de programacion como la gente de los foros en los que pides ayuda).

Para salucionar tu problema tienes que forzar el vaciado del stdin despues de cada lectura de datos numericos, te dejo una funcion para eso:

Código:
void fflush() {
    char c;
    while((c = fgetc(stdin)) != EOF && c != '\n');
}
Nota que esto es una sobrecarga de la funcion fflush que ya existe en stdio pero que no funciona con el stream stdin.

Saludos
vosk

Etiquetas: c++, clase, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:08.