如何在c++中使用getline向类输入值
How can you use getline to input values to classes in C++?
我认为我已经做了正确的一切使这个工作,但我得到这些错误:
..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("");
}
相关文章:
- 当用户键入分隔符时,停止getline()输入
- 我有三个 getline,但是一旦编译,输入就太多了
- std::getline没有在while循环中重新请求用户输入
- 我的 c++ 程序似乎没有发现字符串和我拥有但输入使用 getline 的变量之间的比较
- 如何将 getline 与标准输入一起使用?
- 使用 cin 或 getline() 输入空值
- 使用 getline 从输入文件打印时如何忽略空白行
- 对c++中的输入使用getline函数时忽略第一个字符
- 如果用户输入的输入大于 char 数组,则 cin.getline 会跳过输入提醒
- 虽然带有 getline 的循环不会因用户输入而结束
- 有没有办法将 getline() 与外部文本文件一起使用,然后重新获得 cin 的控制权以从控制台获取输入?
- C++ - 重复 std::getline() 作为用户整数输入?
- 无法使用 getline() 输入字符串.它只读取一个字符串
- 如何使用 std::in 和 getline() 检测后台进程中从 bash 注入的输入
- 使用 getline 从输入文件读取一行到输出文件
- C :使用getline从文本文件中输入,要么跳过第一行,要么将其余部分弄乱
- std :: getline(输入,d.info)不起作用
- 在 cpp 中使用 getline 输入数组中的空格分隔数字
- c++中的getline输入错误
- std::getline输入在C++中无法正常工作