从文件中读取时对类性别进行排序

时间:2014-12-17 18:08:47

标签: c++

你好,我是新来的,我有一个小问题,如果你帮助我,我将不胜感激

studentTest

while (!input.eof()) {
    stud.read(input);
    if (== 'M')
        stud.print();

}

现在我在这里,我可以成功打印出来但我不知道if ( == 'M'),我不知道该放什么所以我可以根据男性来排序关于如何解决它的任何线索?

我有2个头文件包含Student和GradeRecord类,并且在另一个c ++文件中都有getter和setter。

这是stud.read(input)

读取的地方
void Student::read(ifstream &file){
char sex;
string line;
double math, computer, english;
string name;

    getline(file, name, ',');
    s.setName(name);

    file >> sex;
    file.ignore();
    s.setSex(sex);

    file >> math;
    file.ignore();
    s.grade.setMathGrade(math);

    file >> computer;
    file.ignore();
    s.grade.setComputerGrade(computer);

    file >> english;
    file.ignore();
    s.grade.setEnglishGrade(english);

}

然后根据此功能打印出来。

void Student::print(){

s.getSex();
double m = s.grade.getMathGrade();
double c = s.grade.getComputerGrade();
double e = s.grade.getEnglishGrade();
double a = s.grade.getAverage();

cout << left << setw(24) << s.getName() << setw(15) << left << letterGrade(m) << setw(15) << left << letterGrade(c) << setw(15) << left << letterGrade(e) << setw(15) << left << s.grade.getTotal() << setw(15) << left << letterGrade(a) << endl;

}

EDITED

我不知道怎么把完整的代码所以我用word doc制作它如果你下载会很高兴 enter link description here

2 个答案:

答案 0 :(得分:1)

假设getSex只返回M或F作为char,if (stud.getSex() == 'M')就足够了。顺便说一句,我不相信我会看到这个电话stud.getSex(),更不用说完全无辜的了。

答案 1 :(得分:0)

纠正功能

while (!input.eof()) 
{
    stud.read(input);
    if ((stud.getSex() == 'M') | (stud.getSex() == "m"))
    {
        stud.print();
    }

}

这应检查您的对象的性别并将其作为要检查的字符串返回。