Сохранение оценок в файл
Чтобы после завершения работы с программой, все данные сохранялись, мы будем записывать их в текстовый файл.
Оценки каждого студента будут находится в отдельной строке. Имя и фамилии будут разделяться пробелами. После имени и фамилии ученика ставится еще один пробел, а затем перечисляются все его оценки.
Пример файла с оценками:
Василий Пупкин 5 4 5 3 3
Иван Сидоров 5 5 3 4 5
Андрей Иванов 5 3 3 3 3
Для работы с файлами мы воспользуемся библиотекой fstream , которая подключается в заголовочном файле с таким же именем.
#include <fstream>
void Students::save()
{
std::ofstream fout("students.txt", std::ios::app);
fout << Students::get_name() << " "
<< Students::get_last_name() << " ";
for (int i = 0; i < 5; ++i) {
fout << Students::scores[i] << " ";
}
fout << std::endl;
fout.close();
}
Переменная fout — это объект класса ofstream , который находится внутри библиотеки fstream . Классofstream используется для записи каких-либо данных во внешний файл. Кстати, у него тоже есть конструктор. Он принимает в качестве параметров имя выходного файла и режим записи.
В данном случае, мы используем режим добавления — std::ios:app (англ. append). После завершения работы с файлом, необходимо вызвать метод close() для того, чтобы закрыть файловый дескриптор.
Чтобы сохранить оценки студента, мы будем вызывать только что созданный метод save() .
Students student = new Students("Василий", "Пупкин");
student->save();
|