string imie[2];
int pkt[2];
W pliku masz 3 uczniów, a nie 2. To zadanie można zrobić krócej i lepiej bez getline:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
const int data_size = 3;
string imie[data_size]{};
int pkt[data_size]{};
fstream plik;
plik.open("oceny.txt", ios::in);
if (!plik.good())
{
cout << "Plik nie istnieje";
exit(0);
}
for (int i = 0; i < data_size && !plik.eof(); i++)
{
plik >> imie[i] >> pkt[i];
}
for (int i = 0; i < data_size; i++)
{
cout << "Imie: " << imie[i] << endl;
cout << "Pkt: " << pkt[i] << endl;
}
}