Сформировать файл “EXAM” по результатам экзаменационной сессии (три экзамена). Информация о студентах вводится в символьном виде в следующем порядке: фамилия **N1**N2**N3, где Ni – это оценка. Используя файл распечатать результаты сессии в виде таблицы .Предусмотреть печать шапки таблицы с названиями дисциплин в С++
Ответы
Ответ:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
// Відкриваємо файл для читання
ifstream infile("EXAM.txt");
// Відкриваємо файл для запису результатів
ofstream outfile("EXAM_RESULTS.txt");
// Перевірка, чи відкрилися файли успішно
if (!infile.is_open()) {
cout << "Помилка відкриття файлу!" << endl;
return 1;
}
if (!outfile.is_open()) {
cout << "Помилка відкриття файлу!" << endl;
return 1;
}
// Шапка таблиці
outfile << "Результати екзаменів" << endl;
outfile << "-------------------------------------" << endl;
outfile << "| Прізвище | Екзамен 1 | Екзамен 2 | Екзамен 3 |" << endl;
outfile << "-------------------------------------" << endl;
// Читаємо дані з файлу і формуємо таблицю результатів
string line;
while (getline(infile, line)) {
outfile << "| ";
int start_pos = 0, end_pos = 0;
for (int i = 0; i < 3; i++) {
end_pos = start_pos + 3;
string mark = line.substr(start_pos, end_pos - start_pos);
outfile << " " << mark << " | ";
start_pos = end_pos;
}
outfile << endl;
}
outfile << "-------------------------------------" << endl;
// Закриваємо файли
infile.close();
outfile.close();
return 0;
}