Несколько замечаний:
a) Код не является полным.Пожалуйста, опубликуйте полный и желательно скомпилированный исходный код.
б) Зачем вам смешивать std :: vector и массивы?(push_back существует только в std :: vector, но вы выделяете Pcgpa как стандартный массив C), и вам не нужен размер заранее.Кроме того, если вы используете векторы и читаете до конца файла, вам не нужен Pcgpa.
c) Вам нужно вводить данные в PfirstN, а не в PfirstN [i].Вы читаете целую строку, а не письмо.Кроме того, доступ к PfirstN [i] с i> 0 в пустой строке - это нет-нет.
Это должно работать:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
int size= 0;
cin >> size;
vector<string> vectorOfFirstNames;
vector<string> vectorOfLastNames;
vector<float> vectorOfcgpa;
float sum= 0.0;
for (int i = 0; i < size; i++) {
string firstName;
string lastName;
float cgpa= 0.0;
cin >> firstName >> lastName >> cgpa;
vectorOfFirstNames.push_back(firstName);
vectorOfLastNames.push_back(lastName);
vectorOfcgpa.push_back(cgpa);
sum+= cgpa;
}
// Print data
for (int i = 0; i < size; i++) {
cout << "First name: " << vectorOfFirstNames[i] << " - Last name: " << vectorOfLastNames[i] << " - cgpa: " << vectorOfcgpa[i] << endl;
}
// Please don't divide by zero ;)
float avg= size > 0 ? sum/size : 0;
cout << "Avg: " << avg << endl;
cout << "Sum: " << sum << endl;
}