Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/08/2009, 06:05
tig0
 
Fecha de Ingreso: agosto-2009
Mensajes: 16
Antigüedad: 15 años, 4 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;
}