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

Problema obtener datos mediente cin.

Estas en el tema de Problema obtener datos mediente cin. en el foro de C/C++ en Foros del Web. Hola quiero hacer una agenda con 10 nombres y 10 telefonos pero al usuario escribir el 1º nombre y numero de mas de 1 cifra ...
  #1 (permalink)  
Antiguo 05/07/2011, 13:23
 
Fecha de Ingreso: mayo-2011
Ubicación: Almeria (España)
Mensajes: 51
Antigüedad: 13 años
Puntos: 3
Exclamación Problema obtener datos mediente cin.

Hola quiero hacer una agenda con 10 nombres y 10 telefonos pero al usuario escribir el 1º nombre y numero de mas de 1 cifra salta al final del programa directamente sin preguntar los demas numeros.

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

struct Persona 
{
      char Nombree;
      int Numeroo;
}PNumero[10];

int opcion;

int main()
{    
    cout << "Introduce el nombre y numero de la primera persona separados por un espacio para la agenda" << endl;
    cin >> PNumero[0].Nombree >> PNumero[0].Numeroo;

    cout << "Introduce el nombre y numero de la segunda persona separados por un espacio para la agenda" << endl;
    cin >> PNumero[1].Nombree >> PNumero[1].Numeroo;
    
    cout << "Introduce el nombre y numero de la tercera persona separados por un espacio para la agenda" << endl;
    cin >> PNumero[2].Nombree >> PNumero[2].Numeroo;
    
    cout << "Introduce el nombre y numero de la cuarta persona separados por un espacio para la agenda" << endl;
    cin >> PNumero[3].Nombree >> PNumero[3].Numeroo;
    
    cout << "Introduce el nombre y numero de la quinta persona separados por un espacio para la agenda" << endl;
    cin >> PNumero[4].Nombree >> PNumero[4].Numeroo;
    
    cout << "Introduce el nombre y numero de la sexta persona separados por un espacio para la agenda" << endl;
    cin >> PNumero[5].Nombree >> PNumero[5].Numeroo;
    
    cout << "Introduce el nombre y numero de la septima persona separados por un espacio para la agenda" << endl;
    cin >> PNumero[6].Nombree >> PNumero[6].Numeroo;
    
    cout << "Introduce el nombre y numero de la octaba persona separados por un espacio para la agenda" << endl;
    cin >> PNumero[7].Nombree >> PNumero[7].Numeroo;
    
    cout << "Introduce el nombre y numero de la novena persona separados por un espacio para la agenda" << endl;
    cin >> PNumero[8].Nombree >> PNumero[8].Numeroo;
    
    cout << "Introduce el nombre y numero de la decima persona separados por un espacio para la agenda" << endl;
    cin >> PNumero[9].Nombree >> PNumero[9].Numeroo;
    
    Menu:
    cout << "Menu:" << endl;
    cout << "1) Buscar por nombre" << endl;
    cout << "2) Buscar por número de teléfono" << endl;
    cout << "3) Salir" << endl;
    cout << "Pulsa una opción(escribe 1, 2 o 3):" << endl;
    cin >> opcion;
    
    switch(opcion)
    {
                  case 1:
                      break;
                  case 2:
                    break;
                  case 3:
                       break;
                  default:
                       goto Menu;
    }
    
    
    
   goto Menu;          
}
El problema es que el suario escribe el primero nombre y telefono y salta al final, sin preguntar nisiquiera una opcion para el menú porloque se crea un bucle infinito en goto.

Ayuda porfavor
un saludo
  #2 (permalink)  
Antiguo 05/07/2011, 13:28
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Problema obtener datos mediente cin.

Pasa que el tipo de la variable nombre dentro de la estructura es un char. Deberias ser una cadena de caracteres, tipo char nombre[25];
  #3 (permalink)  
Antiguo 05/07/2011, 13:51
 
Fecha de Ingreso: mayo-2011
Ubicación: Almeria (España)
Mensajes: 51
Antigüedad: 13 años
Puntos: 3
Respuesta: Problema obtener datos mediente cin.

Cita:
Iniciado por sam90 Ver Mensaje
Pasa que el tipo de la variable nombre dentro de la estructura es un char. Deberias ser una cadena de caracteres, tipo char nombre[25];
Si pongo una cadena de caracteres despues pongo

cin >> estructura[1].cadena;
y me da error

si pongo esto no me da erro pero pasa lo mismo
cin >> estructura[1].cadena[60];
  #4 (permalink)  
Antiguo 05/07/2011, 13:52
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Problema obtener datos mediente cin.

Yo en tu codigo defini la estructura asi y funciona:

Código C++:
Ver original
  1. struct Persona
  2. {
  3.       char Nombree[25];
  4.       int Numeroo;
  5. }PNumero[10];
  #5 (permalink)  
Antiguo 05/07/2011, 14:16
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Problema obtener datos mediente cin.

Cita:
Iniciado por berserkerhacker Ver Mensaje
Si pongo una cadena de caracteres despues pongo

cin >> estructura[1].cadena;
y me da error

si pongo esto no me da erro pero pasa lo mismo
cin >> estructura[1].cadena[60];
si pongo esto no me da erro pero pasa lo mismo
cin >> estructura[1].cadena[60];

esto no lo podes poner porque si declaraste como

Código C++:
Ver original
  1. typedef Persona{
  2.        
  3.         char Nombree[25];
  4.         int Numeroo;
  5. }PNumero[10];

a la hora de hacer

cin>>PNumero[0].Nombree;

el programa sabra que esa es una variable char de 10 posiciones con capacidad de 25 caracteres, asi que no hace falta agregar [XX], despues de eso
  #6 (permalink)  
Antiguo 05/07/2011, 14:32
 
Fecha de Ingreso: mayo-2011
Ubicación: Almeria (España)
Mensajes: 51
Antigüedad: 13 años
Puntos: 3
Respuesta: Problema obtener datos mediente cin.

Cita:
Iniciado por baker1562 Ver Mensaje
si pongo esto no me da erro pero pasa lo mismo
cin >> estructura[1].cadena[60];

esto no lo podes poner porque si declaraste como

Código C++:
Ver original
  1. typedef Persona{
  2.        
  3.         char Nombree[25];
  4.         int Numeroo;
  5. }PNumero[10];

a la hora de hacer

cin>>PNumero[0].Nombree;

el programa sabra que esa es una variable char de 10 posiciones con capacidad de 25 caracteres, asi que no hace falta agregar [XX], despues de eso
si ago cin>>PNumero[0].Nombree; me da error...

si pongo typedef me da otro eerror.. invalid fuction declaration
  #7 (permalink)  
Antiguo 05/07/2011, 14:38
 
Fecha de Ingreso: mayo-2011
Ubicación: Almeria (España)
Mensajes: 51
Antigüedad: 13 años
Puntos: 3
Respuesta: Problema obtener datos mediente cin.

Parece que e econtrado el error
Código:
struct Persona{          
           char Nombree[60];
           int Numeroo[11];
}PNumero[10];

    cin >> PNumero[0].Nombree >> PNumero[0].Numeroo;
me tiraba eerro lo he cambiado a
Código:
struct Persona{          
           char Nombree[60];
           int Numeroo;
}PNumero[10];

    cin >> PNumero[0].Nombree >> PNumero[0].Numeroo;

Y funciona xD perdodad pero soy un novato y no he distingido entre cadena de caracteres y array de int xDD sorry.

Etiquetas: 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 09:31.