Olá… Estou construindo uma algoritmo que faz algumas operações com uma lista, mas a minha dúvida é sobre a leitura de strings. Já tive problema com isso antes e aprendi a usar o getline… O problema do código abaixo é que: ele funciona ok na 1o iteração do for, mas a partir da segunda ele pula a leitura da primeira variável (string) que está usando o getline… não sei o que faço.
#include <iostream>
#include <string>
#define MAX_LIST 5
using namespace std;
struct EXERCICIO{
string nome;
int serie;
int repeticoes;
float peso;
}aux;
bool insere(EXERCICIO serie[], string n, int s, int r, float p, int &last);
int main(){
EXERCICIO serieA[MAX_LIST];
int last=0;
int i;
bool status;
//PROBLEMA AQUI
for(i=0; i<MAX_LIST; i++){
cout << "\t\tINSERCAO DE EXERCICIOS DA SERIE A: ";
cout << "\n\tEXERCICIO " << i+1;
cout << "\nNome do exercicio: "; getline(cin, aux.nome);
cout << "\nQt. de Series: "; cin >> aux.serie;
cout << "\nRepeticoes: "; cin >> aux.repeticoes;
cout << "\nPeso: "; cin >> aux.peso;
cout << "\n\n";
status = insere(serieA, aux.nome, aux.serie, aux.repeticoes, aux.peso, last);
if(status == true){
cout << "\nInsercao realizada com sucesso" << endl;
}
system("cls");
}
}
bool insere(EXERCICIO serie[], string n, int s, int r, float p, int &last){
if(last == MAX_LIST){
cout << "\nLista cheia." << endl;
return false;
}else{
serie[last].nome = n;
serie[last].serie = s;
serie[last].repeticoes = r;
serie[last].peso = p;
last++;
}
return true;
}