Давайте посмотрим на вашу getData()
функцию.Он определяется как:
void getData(Student &students)
Поскольку тип возвращаемого значения void
, я предполагаю, что вы, вероятно, передадите Student
, а затем измените его в функции.Тем не менее, вы делаете:
Student students;
getline(fileIn, students.name);
Ой!Это объявляет новый students
, который скрывает параметр students
.Поэтому, когда вы делаете students.name
, вы говорите о локальной переменной, а не о параметре.
Убейте это новое объявление, и все должно работать так, как вы ожидали!