вход cin и getline [дубликаты]

На этот вопрос уже есть ответ:

Почему std :: getline () пропускает ввод после форматированного извлечения? 3 ответа

раньше я отправил вопрос оcin пропуская ввод, и я получил результаты для очистки и использованияistringstream, но сейчас я попробовал все возможные решения, но ни одно из них не сработало.

вот мой код:

<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>

но я все еще получаю то же самое, пропуская ввод, и когда он принимает ввод, он берет их и сохраняет в пустом имени ничего, а в адресе принимает то, что я написал в имени, но от 2-й буквы до конца

что не так с моим кодом?

Я попробовалcin.ignore(), cin.get(), а такжеcin.clear() все они вместе и одни, ни один из них не работал

РЕДАКТИРОВАТЬ

етод @main в main.cpp вызываетmainMenu() тольк

<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>

я выберу 1 для примера клиента, это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>

Я снова выбираю 1, чтобы создать новый объект клиента, который теперь перейдет в MainFunctions.cpp, который вызовет функциюcreateNewCustomer() который первый.

<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>

Ответы на вопрос(4)

Ваш ответ на вопрос