i dont really know whats wrong with this, but its super basic.
im not done writing the program yet, im still missing some input prompts for the user, but as i am testing my current program, i keep getting an error message that says
line 70 - name lookup of 'j' changed for new ISO 'for' scoping
line 68 - using obsolete binding at 'j'
does anyone have any idea what this means?
to get a better understanding, my current code is below...
#include <fstream>
#include <iomanip>
#include <string>
#include <iostream>
using namespace std;
struct Student
{
string name;
int id;
float gpa;
};
void printStudents(Student* student, int nStudents)
{
int i;
for (i = 0; i < nStudents; i++)
{
cout << "Name = " << left << setw(30) << student[i].name;
cout.fill('0');
cout << " ID = "<< right << setw(7)
<< student[i].id << ", gpa = "
<< student[i].gpa << endl;
cout.fill(' ');
}
}
int main()
{
// open a file for input
// create an empty list
const int MAX_STUDENTS = 100; // capacity
int nStudents = 0; // initially empty
Student student[MAX_STUDENTS];
// read and save the records
while (true)
{
// create a record and read it from file
Student aStudent;
getline(cin, aStudent.name);
cin >> aStudent.id;
cin.ignore(1000, 10);
cin >> aStudent.gpa;
cin.ignore(1000, 10);
cin.ignore(1000, 10); // skip the -------------- separator
// add record to list, if it's not full
if (nStudents < MAX_STUDENTS)
student[nStudents++] = aStudent;
}
// sort the students by name
for (int i = 0; i < nStudents; i++)
{
for (int j = i + 1; j < nStudents; j++);
{
if (student[i].name > student[j].name)
{
Student temp = student[i];
student[i] = student[j];
student[j] = temp;
}
}
}
printStudents(student, nStudents);
cin.ignore();
cin.get();
return 0;
}