簡體   English   中英

從文件讀取時對班級性別進行排序

[英]Sorting class gender when reading from a file

您好,我是新來的,我有一個小問題,如果您能幫助我,我將不勝感激

studentTest

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

}

現在在這里我只能停留在上面,可以成功打印它們,但是我不知道if ( == 'M') ,所以我不知道要輸入什么,所以我只能根據男性對它們進行分類要解決這個問題 ?

我有2個頭文件包含Student和GradeRecord類,並且在另一個c ++文件中都具有getter和setters。

這是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編寫了它,如果您下載了,請在這里輸入鏈接描述,我會很高興

if (stud.getSex() == 'M')應該足夠,假設getSex只是返回一個M或F作為一個字符。 stud.getSex() ,我不相信我會在如此純真的上下文中看到調用stud.getSex() ,更不用說了。

正確的功能

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

}

這應該檢查對象的性別,並將其作為要檢查的字符串返回。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM