希望将文本文件中的逗号分隔值添加到类的成员

时间:2019-04-08 11:19:56

标签: c++ class ifstream

我上周在这里创建了一个帖子,但这是一个结构。

Looking to add comma delimited values in a text file to members of a struct

我这里有一个文本文件,带有两个值,一个名称和一个分数。我有一个学生班,有4个成员,如下所示。

我希望将文本文件中的值添加到类中以逗号分隔的相应成员。

students.txt文件的前五行;

Nubia,Dufrene,70
Louisa,Trippe,49
Aline,Deniz,34
Shery,Munk,63
Angila,Ping,89

我当前的代码;

studentType.h

class q1studentType
{
    //Private Memebrs
    std::string studentFName;
    std::string studentLName;
    std::string testScore;
    char grade;


public:
    //Constructor
    q1studentType(std::string studentFName,std::string studentLName, std::string testScore);

    //Get & Set
    std::string const getStudentFName() { return studentFName; }
    std::string const getStudentLName() { return studentLName; }
    std::string getTestScore() const { return testScore; }

    void setStudentFName(std::string fN) { q1studentType::studentFName = fN; }
    void setStudentLName(std::string lN) { q1studentType::studentLName = lN; }
    void setTestScore(std::string ts) { q1studentType::testScore = ts; }

    //Member Functions
    void printStudent();
    int stringToInt(std::string convertMe);
    //std::vector<q1studentType> initStudents();

    ~q1studentType();
};

studentType.cpp

q1studentType::q1studentType(std::string sFN, std::string sLN, std::string ts)
{
    studentFName = sFN;
    studentLName = sLN;
    testScore = ts;
    stringToInt(testScore);
    //assignGrade();
}

main.cpp

void initstudents() {
    std::vector<q1studentType> students;
    std::ifstream inFile("students.txt");

    for (q1studentType i;
        getline(inFile, i.setStudentFName, ',')
        && getline(inFile, i.setStudentLName, ',')
        && getline(inFile, i.setTestScore)
        ; )
    {
        studentVector.push_back(i);
    }
}

我认为main函数不起作用,因为getline不接受setMethod作为参数。 我不能在for循环中使用类成员。 i.studentFName,因为它们是私有的,并且只能在类内部访问。

什么是最好的方法?我应该在student.cpp文件或主文件中有inittudents吗?

0 个答案:

没有答案