Ich bin ein Anfänger in C++ - Codierung und ich habe eine Frage zum Lesen von Zeilen aus einer Datei in bestimmte Klassenobjekte, von denen eines ein Array ist.Lesen von Datei zu verschiedenen Klassenobjekten
Mein Klassenobjekt:
const int SIZE_OF = 5;
class Student
{
public:
Student();
Student(const Student &);
Student(string, int, int, int, int, int);
friend std::istream& operator >> (std::istream& in, Student& S);
void display();
private:
string lastName;
int grades[SIZE_OF];
};
CPP-Datei Funktionen zu definieren:
Student::Student()
{
int i;
string lastName = "default";
for (i = 0; i < 5; i++)
{
grades[i] = 0;
}
}
Student::Student(const Student & S)
{
int i;
lastName = S.lastName;
for (i = 0; i < 5; i++)
{
grades[i] = S.grades[i];
}
}
Student::Student(string S, int a, int b, int c, int d, int e)
{
lastName = S;
grades[0] = a;
grades[1] = b;
grades[2] = c;
grades[3] = d;
grades[4] = e;
}
std::istream& operator >> (std::istream& in, Student& S)
{
std::string line;
std::getline(in, line);
in >> S.lastName >> S.grades[0] >> S.grades[1] >> S.grades[2] >> S.grades[3] >> S.grades[4];
getline(in, S.lastName);
return in;
}
void Student::display()
{
int i;
int sum = 0;
double average;
cout << "Last Name: " << lastName << endl;
cout << "Grades: " << endl;
for (i = 0; i < 5; i++)
{
cout << grades[i] << endl;
}
for (i = 0; i < 5; i++)
{
sum = sum + grades[i];
}
average = sum/5;
cout << "Average: " << average;
}
Was ich tun müssen, um aus einer Datei gelesen wird und den Namen, unter dem lastName
Ziel der Student
Klasse speichern . Dann muss ich jeden Grad im Array-Objekt speichern. Dann muss ich ein neues Student
Klassenobjekt für den nächsten Namen haben und den Prozess für 4 Namen wiederholen. Die Datei lese ich aus:
George
75,85,95,100,44
Peter
100,100,100,100,100
Frank
44,55,66,77,88
Alfred
99,88,77,66,55
Was ich nicht verstehe, ist, wie man die Datei in verschiedene Klassenobjekte einliest. Zum Beispiel hätte ich 4 Objekte der Studentenklasse und die ersten 2 Zeilen müssten zum ersten Objekt gelesen werden, dann die nächsten beiden Zeilen sind das zweite Objekt und so weiter. –