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

ayuda con un programa c++

Estas en el tema de ayuda con un programa c++ en el foro de C/C++ en Foros del Web. el problema es que el programa tira bien si le metes 2 entradas, pero a la tercera peta. alguien podria decirme porke me peta? Código: ...
  #1 (permalink)  
Antiguo 26/08/2009, 06:05
 
Fecha de Ingreso: agosto-2009
Mensajes: 16
Antigüedad: 14 años, 8 meses
Puntos: 2
ayuda con un programa c++

el problema es que el programa tira bien si le metes 2 entradas, pero a la tercera peta. alguien podria decirme porke me peta?

Código:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int contador=0;

class datos {
      private:
              string numeros;
              char nomape[40];
              char dir[50];
              char poblacion[10];
              int tel, telfijo;
      public:
             datos();
             void mostrardatos(void);
             }*per[40];

datos::datos(){
               cout << "\n introduce nombre y apellidos "<<endl;
               cin.getline (nomape, sizeof(nomape));
               cout << "\n introduce direccion "<<endl;
               cin.getline (dir, sizeof(dir));
               cout << "\n introduce poblacion "<<endl;
               cin.getline (poblacion, sizeof(poblacion));
               cout << "\n introduce telefonos, primero fijo 2 movil "<<endl;
               getline (cin, numeros);
               stringstream (numeros) >> telfijo;
               getline (cin, numeros);
               stringstream (numeros) >> tel;
               }
void datos::mostrardatos(void){
                      cout << "nombre : " << nomape<<endl;
                      cout << "direccion : "<<dir<<endl;
                      cout << "poblacion : "<<poblacion<<endl;
                      cout << "Tel fijo : "<<telfijo << " tel movil : "<<tel<<endl;
                      }

int main () {
    int opcion;
    string mystr;
    loop:
    int contemp=0;
    cout << "introduce opcion, 1=grabar, 2=mostrar, 0=salir "<<endl;
    cin >> opcion;
    cin.get();
    switch (opcion){
           case 0:
                break;
           case 1:
                cout << "introduce entradas "<<endl;
                cin>>contemp;
                cin.get();
                for (int n=0;n<contemp;n++){
                    per[(n+contador)]=new datos;
                    contador++;} goto loop;
           case 2:
                for (int n=0;n<contador;n++){
                    per[n]->mostrardatos();} goto loop;
           default:
                   cout << "opcion erronea"<<endl;
                   goto loop;}
    cin.get();
    return 0;
}
  #2 (permalink)  
Antiguo 27/08/2009, 02:29
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: ayuda con un programa c++

El bucle del case 1 esta mal, tanto n como contador son incrementados en cada pasada por lo cual el elemento sera 0, 2, 4, 6, etc.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
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 06:48.