Hola que tal a todos los que leen esto les doy gracias de antemano por tomarse su tiempo y en especial si pueden responder a unas cuantas preguntas que tengo sobre un código que hice en c++ se los agradecía de corazón
el cual es este:
#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