C++ 开关状态在方法getline c+之后反应错误+;

C++ 开关状态在方法getline c+之后反应错误+;,c++,class,methods,switch-statement,do-while,C++,Class,Methods,Switch Statement,Do While,我正在为大学编写一个银行应用程序,我偶然发现了一个问题。让我们以我的类Customer的一个方法为例 void Customer::create_customer_data() { cout << "Client' Address: "; getline(cin, clientAddress); cin.ignore(); cout << "Client's birth date: "; getline(cin, clientBir

我正在为大学编写一个银行应用程序,我偶然发现了一个问题。让我们以我的类Customer的一个方法为例

void Customer::create_customer_data() {
    cout << "Client' Address: ";
    getline(cin, clientAddress);
    cin.ignore();
    cout << "Client's birth date: ";
    getline(cin, clientBirthDate);
    cin.ignore();
    cout << "Client's telephone number: ";
    getline(cin, clientTelephoneNumber);
    cin.ignore();
    cin.clear(); }
void Customer::创建客户数据(){

我想说,你的
cin
需要冲洗一下

答案可以在这里找到:

这个问题也可能确实相关。但得出的结论是相同的
int main() {
int choice, _globalClientNumber = 0;
Customer a(_globalClientNumber);
cout << "Welcome to bank manager 1.0!" << endl;

do {
    cout << "Main Menu"<< endl;
    cout << "Create a new customer (1)" << endl;
    cout << "Create a new account (2)" << endl;
    cout << "Cash money into account (3)" << endl;
    cout << "Cash money out of account (4)" << endl;
    cout << "Transfer money between two accounts (5)" << endl;
    cout << "See current status of a customer and its accounts (6)" << endl;
    cout << "End Application (0)" << endl;

    cout << "Choice: ";
    cin >> choice;

    switch (choice) {
        case 1:
            a.create_customer_data();
            break;
        case 2:
            a.create_new_account();
            break;
        case 3:
            a.cash_in();
            break;
        case 4:
            a.cash_out();
            break;
        case 5:
            a.transfer_money();
            break;
        case 6:
            a.print();
            break;
        default:
            break;
    }

    cout << endl;
}
while (choice != 0);

return 0; }