para loop ignorando getline

lá, pessoal. Estou fazendo uma tarefa de programação em dados estruturados e acredito que entendo como as estruturas funciona

Estou tentando ler uma lista de nomes de alunos, números de identificação (números A) e seus saldo

Quando eu compilar meu código, ele lerá tudo na primeira vez, mas na segunda vez no loop e todas as vezes depois, ele solicita o nome de usuário, mas ignora a getline e vai direto para Número A e Número A entrada

Qualquer ajuda seria apreciada. Apenas tentando descobrir como fazer o getline funcionar toda vez que o loop ocorre

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;


int main(){
    const int maxStudents = 30;
    struct Students{
        string studentName;
        int aNumber;
        double outstandingBalance;};

    Students students[maxStudents];

    for(int count = 0; count < maxStudents-1; count++)
    {
        cout<<"Student Name:";
               , cin.ignore();
        getline(cin,students[count].studentName);
        cout<<"\nA-Number:";
        cin>>students[count].aNumber;
        if(students[count].aNumber == -999)
            break;
        cout<<"\nOutstanding Balance:";
        cin>>students[count].outstandingBalance;
    }

    cout<<setw(20)<<"A-Number"<<"Name"<<"Balance";

    for(int count2 = 29; count2 >= maxStudents-1; count2--)
        cout<<setw(20)<<students[count2].aNumber<<students[count2].studentName<<students[count2].outstandingBalance;


    system("pause");
    return 0;
}

questionAnswers(8)

yourAnswerToTheQuestion