При вводе файла я делаю вектор, но я не уверен, как получить доступ к каждой его отдельной части.
Вы можете получить доступ к отдельным элементам через оператора []
students[0].firstName; // get the first name.
std::cout << students[1].firstName; // prints out the first name.
Вы можете использовать индекс от 0 -> size ().
size_t size = students.size(); // number of students in the vector.
students[size].firstName; // This is wrong. You expression in
// [] must be less than size as the elements are
// numbered from 0 to size() -1.
потому что кажется, что это делает только один студент.
Вы создаете только одну студенческую (как сторону, не выбирайте лучшего имени). Но когда вы вызываете push_back (), вы копируете этот объект ученика в вектор. Таким образом, вектор получает копию 's', которую он хранит. Затем каждый раз в цикле вы перезаписываете старые значения в 's' новыми значениями, полученными из файла.
Мне сказали, что каждая строка файла разбита и введена в вектор студентов, но я не знаю, как извлечь эту информацию.
Как отмечено выше, каждый элемент может быть достигнут индивидуально с помощью оператора []
В качестве альтернативы вы можете использовать итераторы для получения диапазона. студентов.
std::vector<Student>::iterator loop = students.begin();
std::vector<Student>::iterator end = students.end();
Вы можете получить доступ к элементу с помощью разыменования цикла и перейти к следующему студенту, увеличивая цикл.
std::cout << loop->firstName; // prints out student[0]
++loop; // Increment loop now it points at student 1
std::cout << loop->firstName; // prints out student[1]
++loop; // Increment loop now it points at student 2
// etc
Если цикл == конец, то вы прошли всех студентов.
Как вывести каждого студента из вектора студентов в его собственную структуру, чтобы я мог использовать каждого студента в качестве своей собственной структуры?
Студенты в векторе уже в структурах. Вы можете использовать их напрямую, как если бы вы использовали структуру снаружи. Но если вы хотите скопировать их, вы можете сделать это:
Student tmp = students[0]; // copies student 0 into tmp.
Я бы хотел вывести:
Используйте std :: cout для вывода материала на стандартный вывод. Или создайте объект типа std :: ofstream для вывода в файл:
std::cout << tmp.lastName << " "
<< tmp.firstName << " "
<< tmp.stdNumber << "\n";
std::ofstream file("plop1.txt");
file << tmp.lastName << " "
<< tmp.firstName << " "
<< tmp.stdNumber << "\n";