从文件读取时对类性别进行排序
Sorting class gender when reading from a file
你好,我是新来的,我有一个小问题,如果你帮助我,我将不胜感激
学生测试
while (!input.eof()) {
stud.read(input);
if (== 'M')
stud.print();
}
现在我卡在这里,我可以成功地将它们全部打印出来,但我不知道if ( == 'M')
,我不知道该放什么,所以我可以根据男性对它们进行排序,只有关于如何解决它的任何线索?
我有 2 个头文件包含类学生和成绩记录,并且在另一个 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;
}
编辑
我不知道如何放置完整的代码,所以我在 Word 文档中制作了它,如果您下载,我会很高兴在此处输入链接说明
>假设getSex
只返回一个 M 或一个 F 作为字符,if (stud.getSex() == 'M')
应该就足够了。 顺便说一句,我不相信我会看到stud.getSex()
的电话,更不用说在如此完全无辜的情况下了。
正确的函数
while (!input.eof())
{
stud.read(input);
if ((stud.getSex() == 'M') | (stud.getSex() == "m"))
{
stud.print();
}
}
这应该检查对象的性别并将其作为字符串返回以进行检查。
相关文章:
- 按价格对文件中的产品进行排序
- 如何对文件中数组中的单个列进行冒泡排序?C++
- 使用C++对一个巨大文件中的文本行进行字典式外部排序
- 如何按升序对输入文件中的数字进行排序,并找到它们的范围和中值
- 如何在一个巨大的文本文件中对整数进行排序
- 在排序链表中插入结构并将其写入二进制文件
- 从文件中读取并将其内容放入对象数组中,然后对它们进行排序
- 对包含整数的文本文件进行排序时,必须逐行进行排序
- 在排序文本文件中实现二叉搜索?
- 如何从输入的文本文件中按姓氏字母顺序对图表进行排序?
- 按文件中列表中行的一部分排序
- C++ 从文件中获取数据时使用 strcpy 和 strcmp 按字母顺序对数组进行排序?
- 如何从文件中读取并按类别对它们进行排序
- 如何在大型文本文件中对数字进行排序
- C++ 从文件中读取字符,计算每个字符并进行排序
- 从文件中读取并按字母顺序排序
- 随机化超大文件内容排序的有效方法是什么?
- C 从文件和输出排序的内容中读取
- 如何在C++的排序文件中插入数据
- 编写和打印一个额外的0来排序文件,并从末尾删除节点(单链表)