cin e getline pulando entrada [duplicata]

Esta questão já tem uma resposta aqui:

Por que o std :: getline () pula a entrada após uma extração formatada? 3 respostas

anteriormente eu postei uma pergunta sobrecin pular a entrada, e eu tenho resultados para liberar e usaristringstream, mas agora tentei todas as soluções possíveis, mas nenhuma delas funcionou.

aqui está o meu código:

<code>void createNewCustomer () {
    string name, address;

    cout << "Creating a new customer..." << endl;
    cout << "Enter the customer's name: "; getline(cin, name);
    cout << "Enter the customer's address: "; getline(cin, address);

    Customer c(name, address, 0);
    CustomerDB::addCustomer(c);

    cout << endl;
}
</code>

mas eu ainda estou pegando a mesma coisa, pulando a entrada, e quando ela leva entrada, ela pega e armazena no nome vazio nada, e no endereço pega o que eu escrevi no nome mas da 2ª carta até o fim

o que está errado com meu código?

Eu tentei ocin.ignore(), cin.get()ecin.clear() todos juntos e sozinhos, nenhum deles funcionou

EDITAR:

método principal em main.cpp invocamainMenu() só

<code>void mainMenu () {
    char choice;

    do {
        system("cls");
        mainMenuDisplay();
        cin >> choice;
        system("cls");

        switch (choice) {
            case '1':
                customerMenu();
                break;

            case '2':
                dvdMenu();
                break;

            case '3':
                receiptMenu();
                break;

            case '4':
                outro();
                break;

            default:
                cout << '\a';
        }

        cin.ignore();
        cin.get();
    } while (choice != '4');
}
</code>

vou escolher 1 para o exemplo do cliente, isso écustomerMenu()

<code>void customerMenu () {
    char choice;

    do {
        system("cls");
        manageCustomerMenu();
        cin >> choice;
        system("cls");

        switch (choice) {
            case '1':
                createNewCustomer();
                break;

            case '2':
                deleteCustomer();
                break;

            case '3':
                updateCustomerStatus();
                break;

            case '4':
                viewCustomersList();
                break;

            case '5':
                mainMenu();
                break;

            default:
                cout << '\a';
        }

        cin.ignore();
        cin.get();
    } while (choice != '5');
}
</code>

Eu escolho 1 novamente para criar um novo objeto de cliente, que agora irá para o MainFunctions.cpp que invocará a funçãocreateNewCustomer() qual é o primeiro.

<code>void createNewCustomer () {
    string name, address;

    cout << "Creating a new customer..." << endl;
    cout << "Enter the customer's name: "; cin.getline(name,256);
    cout << "Enter the customer's address: "; cin.getline(address,256);

    Customer c(name, address, 0);
    CustomerDB::addCustomer(c);

    cout << endl;
}
</code>

questionAnswers(4)

yourAnswerToTheQuestion