ранее я разместил вопрос о cin
пропуске ввода, и я получил результаты для очистки и использовал istringstream
, но теперь я пробовал все возможные решения, но никто из них не работает.
вот мой код:
void createNewCustomer () {
string name, address;
cout << "Creating a new customer..." << endl;
cout << "Enter the customer name: "; getline(cin, name);
cout << "Enter the customer address: "; getline(cin, address);
Customer c(name, address, 0);
CustomerDB::addCustomer(c);
cout << endl;
}
но я все равно получаю то же самое, пропуская ввод, и когда он принимает входные данные, он берет их и сохраняет в имени ничего пустого, а в адресе он берет то, что я написал, но от 2-й буквы до конец
что не так с моим кодом?
Я попробовал cin.ignore()
, cin.get()
и cin.clear()
все их вместе и один, ни один из них не работал
EDIT:
Основной метод в main.cpp вызывает mainMenu()
только
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');
}
i выберет 1 для примера клиента, это customerMenu()
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');
}
Я снова выбираю 1 для создания нового объекта клиента, который теперь перейдет к MainFunctions.cpp, который будет вызывать функцию createNewCustomer()
, которая является первой.
void createNewCustomer () {
string name, address;
cout << "Creating a new customer..." << endl;
cout << "Enter the customer name: "; cin.getline(name,256);
cout << "Enter the customer address: "; cin.getline(address,256);
Customer c(name, address, 0);
CustomerDB::addCustomer(c);
cout << endl;
}