私はC++コードの初心者です。ファイルから特定のクラスオブジェクトへの行の読み込みに関する質問があります。そのうちの1つは配列です。 ファイルから別のクラスオブジェクトへの読み込み
私のクラスオブジェクト:関数を定義する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ファイル:
私はファイルから読み込まれませんし、Student
クラスの
lastName
オブジェクトの下に名前を保存するために必要なもの
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;
}
。次に、配列オブジェクトに各グレードを保存する必要があります。次に、次の名前に新しいStudent
クラスオブジェクトを追加し、4つの名前のプロセスを繰り返す必要があります。私はから読んでいるファイル:
George
75,85,95,100,44
Peter
100,100,100,100,100
Frank
44,55,66,77,88
Alfred
99,88,77,66,55
私が理解していないように見えるのは、ファイルをさまざまなクラスオブジェクトに読み込む方法です。例えば、私は学生クラスの4つのオブジェクトを持ち、最初の2行は最初のオブジェクトに読み込まれなければならず、次の2行は2番目のオブジェクトとなります。 –