el cual es este:
Código
#include<iostream> #include<string> #include<conio.h> using namespace std; struct informacion { char nombre[20],sex[5]; int edad; }persona[10]; int main() { int participantes; cout<<"DIGITE NUMERO DE PARTICIPANTES\n"; cin>>participantes; cin.ignore();//1 Problema for(int i=0;i<participantes;i++) { cout<<"Ingrese datos de participante N-"<<i+1<<endl; cout<<"Digite su nombre"<<endl; cin.getline(persona[i].nombre,20,'\n');//2 problema cout<<"Digite su edad"<<endl; cin>>persona[i].edad; cin.ignore();//1 problema cout<<"Digite su sexo"<<endl; cin.getline(persona[i].sex,5,'\n');//2 problema } system("cls"); for(int i=0;i<participantes;i++) { cout<<"Datos de participante N-"<<i+1<<endl; cout<<persona[i].nombre<<endl; cout<<persona[i].edad<<endl; cout<<persona[i].sex<<endl; } system("pause"); }
el cual sirve para almacenar las información de n personas e imprimirla pero cuando estaba realizándolo me surgieron 2 problemas :
(1 problema)A este le halle solución pero quisiera saber si hay otra forma de solucionar este problema no me gusta como queda ese "cin.ignore();"
(2 problema) cuando coloco mas de los caracteres máximos que este puede almacenar este rompe el ciclo y no pide mas información