Я пишу небольшую программу, которая выводит данные учеников в текстовый файл, я сохраняю эти данные в массиве структур, а затем пытаюсь вывести эти данные в текстовый файл; Но по какой-то причине он выводит только самые последние введенные данные.
struct students
{
char *familyName[20], *firstName[20];
int enrolNum, mark1, mark2, mark3;
} st[1000];
FILE *fptr;
int studentNum;
int i = 0;
void main()
{
double markOne, markTwo, markThree;
markOne = st[i].mark1 * 0.30;
markTwo = st[i].mark2 * 0.40;
markThree = st[i].mark3 * 0.30;
char *fName;
do
{
ptr = fopen("student.txt", "a+");
fprintf(fptr, "Family name \tFirst name \tenrolment number \tartefact mark 1 \tartefact mark 2 \tartefact mark 3 \n");
fprintf(fptr,"%s \t\t%s \t\t%d \t\t\t%.1f%% \t\t%.1f%% \t\t%.1f%% \n", st[i].familyName, st[i].firstName, st[i].enrolNum, markOne, markTwo, markThree);
printf("\n%d\n%d", i, studentNum);
} while( i < studentNum);
fclose(fptr);
}
Кажется, я не могу понять, почему он выводит только самые свежие данные, а не все их. какие-либо намеки на то, зачем он это сделал?
Большое спасибо Стиву