You don't appear to have read anything in from the file. I'm not even sure you've opened it (I don't know ifstream too well). Can I suggest rather than trying to write the program all in one go you take it a step at a time?

First open the file and read a number from it, display it to screen, close and exit. Build that program and get it working before moving on to the next step.

Then modify that to read multiple numbers from the file. The format appears fixed: first a 4-digit number, then 7 numbers below 101. Display each of those numbers, and optionally detect a line break (by the fact that you've got a large number), and when that works the output should match the input.

As you haven't explained the file structure I can only guess. Does the first line mean student ID=3313 has scores 90 42 58 64 70 75 100? (It's not obvious, because another possibility is that 3313 is a test reference and student 1, represented by the second column, got scores 50, 88, 96 etc). How to proceed will depend critically on this.

If it's the first then you won't need any storage. You can just read the student ID, then initialise a variable X to zero, then read the next 7 numbers in and add them to X. X/7 will then give you the mean score for that student.

You haven't explained how the three grades (outstanding, satisfactory and unsatisfactory) are determined. Does "mean < mean - 10" mean "this student's mean is less than 10 points below the overall mean for the class"? If so then you are going to need some storage: at least the 10 scores for the students, then you have some way of determining where each student's mean lies in respect to the other students. But again take it a step at a time. Just do one student as shown above, and compile and run the program and make sure it works. Then create an array and read in and store all 10 students, and display the 10 results (compile, run, make sure it works, debug before proceeding).

The final step will then be easy: calculate the overall mean, then for each student work out if their mean is >overall+10, or <overall-10, or neither, and display the grading accordingly.

Taking it a step at a time means you won't be swamped by 1000s of errors. Honestly, this is how professionals write code. Nobody in the business to my knowledge writes more than a few lines of code in one go before running a compile/test cycle. This keeps the scope of debugging down to the minimum: if the first step (open, read 1 number, display it, close the file and exit) doesn't work, then you only have a limited number of reasons why: plus, if that doesn't work, then you have *no* chance of doing the whole program.