C++ 我如何将其读入条目fname?

C++ 我如何将其读入条目fname?,c++,C++,我试图将fname lname和电话号码的用户条目读入私有类中相应命名的函数中。因为我不知道如何直接从输入流cin>>get_fname读取它们;我不知道该如何定义如何将它们读入适当的位置 我真的不知道该怎么办 using namespace std; string getResponse() { string response; cout << endl << "What would you like to do?" << endl;

我试图将fname lname和电话号码的用户条目读入私有类中相应命名的函数中。因为我不知道如何直接从输入流cin>>get_fname读取它们;我不知道该如何定义如何将它们读入适当的位置

我真的不知道该怎么办

using namespace std;
string getResponse()
{
    string response;
    cout << endl << "What would you like to do?" << endl;
    cout << "Add and entry (a),";
    cout << "Sort list (s)," << endl;
    cout << "Print the list (p),";
    cout << "Find a name (f)," << endl;
    cout << "Quit (q)?";

    cin >> response;
    return response;
}

void printEntry(Entry entry)
{
    cout << entry.get_fname() << " " << entry.get_lname() << " " << entry.get_number() << endl;
}

void findName(const list<Entry>& data, string name)
{
    for (list<Entry>::const_iterator iter = data.begin(); iter != data.end(); iter++){
        if (name == iter->get_lname()){
            printEntry(*iter);
        }
    }
}



Entry readEntry()
{
    Entry entry;
    cout << "Please enter a first name: ";
    string fname;
    cin >> fname;
    entry.get_fname(fname);
    cout << "Please enter a last name: ";
    string lname;
    cin >> lname;
    entry.get_lname(lname);
    cout << "Please enter a phone number: ";
    string number;
    cin >> number;
    entry.get_number(number);

    return entry;
}

class Entry {
private:

    std::string fname;
    std::string lname;
    std::string number;
public:
    std::string get_fname() const;
    std::string get_lname() const;
    std::string get_number() const;


};

#endif // ENTRY_H_INCLUDED

#include "entry.h"

std::string Entry::get_fname() const {
    return fname;
}
std::string Entry::get_lname() const {
    return lname;
}
std::string Entry::get_number() const {
    return number;
}
你也可以

将类条目中的变量公开,并将用户输入加载到它们中,这样就不需要再使用getter了


您可以使用get_*variable*函数返回我假设的已设置的变量,因此这与实际设置这些变量无关。

我可以推荐您选择吗?您好,欢迎使用。到底是什么问题?您的代码看起来很好;声明get_fname是一个常量函数。您不能使用它来更改对象的状态,只能使用它来查看。你必须找到另一条路。也许readEntry可以是一个公共静态的Entry方法,也可以是一个friend函数?
Entry readEntry()
{
    Entry entry;
    cout << "Please enter a first name: ";
    cin >> entry.fname;

    cout << "Please enter a last name: ";
    cin >> entry.lname;

    cout << "Please enter a phone number: ";
    cin >> entry.number;

    return entry;
}
``````
class Entry {
public:
    std::string fname;
    std::string lname;
    std::string number;
};
Entry readEntry()
{
    Entry entry;
    cout << "Please enter a first name: ";
    string fname;
    cin >> fname;
    entry.set_fname(fname);

    cout << "Please enter a last name: ";
    string lname;
    cin >> entry.lname;
    entry.set_lname(lname);

    cout << "Please enter a phone number: ";
    string number;
    cin >> entry.number;
    entry.set_number(number);

    return entry;
}
``````
class Entry {
public:
    std::string fname;
    std::string lname;
    std::string number;

    void set_fname(std::string _fname) { fname = _fname; };
    void set_lname(std::string _lname) { lname = _lname; };
    void set_number(std::string _number) { number = _number; };
private:
    std::string get_fname() const;
    std::string get_lname() const;
    std::string get_number() const;
};