[英]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.