Olá galera,  Estou aprendendo c++ na faculdade e andei pegando alguns exercícios para praticar esta linguagem.  O programa que estou desenvolvendo é um programa bancário, com um struct conta e um vetor chamado vetconta.   struct conta {
char numero [9]; //guardar 8 digitos referentes ao numero da conta
char agencia [5]; // guardar 4 digitos referentes ao mumero da agência
float saldo; // guardar o saldo do cliente
int movimento; // quantidade de vezes que o cliente movimentou sua conta
};
conta vetconta [30]; // suporte para 30 clientes
Sei que o número e agência poderiam ser valores inteiros, mas o exercício pede que sejam em CHAR.
Minha função para cadastro ficou desta maneira:
int cadastra (int indice) {
    if (indice < 30) {
    cout<<"Informe o numero da conta: ";
    cin.ignore(256,'\n');
    cin.getline(vetconta[indice].numero,9);
    cout<<"\nInforme o numero da agencia: ";
    cin.ignore(256,'\n');
    cin.getline(vetconta[indice].agencia,5);
    cout<<"\nInforme o saldo a ser depositado: ";
    cin>>vetconta[indice].saldo;
    vetconta[indice].movimento = 0;
    return 0;
   } else {
   return 1;
   }
}  O problema é que ao utilizar o cin.ignore(256,'\n') o programa está criando uma linha a mais em agência e este problema não ocorre em número da conta. Onde está o erro?