如何在c++中使用getline向类输入值

How can you use getline to input values to classes in C++?

本文关键字:getline 输入 c++      更新时间:2023-10-16

我认为我已经做了正确的一切使这个工作,但我得到这些错误:

..CS115_IP2_SolJohnston.cpp:107:2: error: 'Customer1'未在此作用域中声明Customer1.setCustName (" ");^

.. cs115_ip2_soljohnton .cpp:152:29:错误:无法将'std::__cxx11::string{也称为std::__cxx11::basic_string}'转换为'Customer*'为参数'1'为'void viewAddress(Customer*)'viewAddress(姓名,地址);^

 void displayMenu(string userName)
{
    cout << userName << ", please select an action from the menu below" << endl;
    cout<<"My Menu";
    cout<<"========" << endl;
    cout<<"0 - View Your Order Name and Address" << endl;
    cout<<"X - Exit " <<endl<<endl;
}
class Customer
{
    private:
    string CustName;
    string CustAddress;
    public:
    void setCustName(string);
    string getCustName();
    void setCustAddress(string);
    string getCustAddress();
    // Constructor
    // create empty placeholders
    Customer();
};
//definition of set/get member functions of Employee class
void Customer::setCustName(string name){CustName=name;}
void Customer::setCustAddress(string address){CustAddress=address;}
string Customer::getCustName() { return CustName; }
string Customer::getCustAddress() { return CustAddress; }

Customer::Customer()
{
    CustName = "";
    CustAddress = "";
}
void viewAddress(Customer *Cust)
{
    cout << "Name: " << Cust->getCustName() << endl;
    cout << "Address: " << Cust->getCustAddress() << endl;
}
int main(void)
{
Customer1.setCustName("");
Customer1.setCustAddress("");
string name = "";
string address = "";
cout << "Please enter your Address:  street, city, state==> ";
getline(cin, address);
Customer1.setCustAddress(address);

cout << "Hello "+ name + " from " + address << endl;
do
    {
    // display menu
    displayMenu(name);
    // read user selection
    cin>>selection;
    switch(selection)
        {
        case '0':
            cout<< "Your Address is" << endl;
            viewAddress(name, address);
            break;
            case 'X' :
        case 'x':
            cout<<"Thank you!!!" << endl;
            break;
        default : cout<<"Invalid selection. Please try again";
        // no break in the default case
        }
        cout<<endl<<endl;
    } while (selection!= 'X' && selection != 'x');
    return 0;
}

您试图在主customer1中使用未声明的对象。因此,声明一个Customer类型的对象,然后使用它。

int main()
{
     Customer customer1; // instantiate Customer class
    Customer1.setCustName("");
    Customer1.setCustAddress("");
}