问题在于,当程序第二次进入while循环时,printf语句彼此紧接着被写入,因此它们之间的代码块没有时间按原计划工作。我听说(fflush)可以解决问题,但是我不知道如何使用它。
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
void savegrades(FILE*f)
{
int g,a,i;
char name[50];
f=fopen("grades.txt", "a");
i = 0;
do {
printf("please enter the student name \n");
gets_s(name, 20);
fprintf(f, "%s", name);
printf("please enter the student grade \n");
scanf_s("%d", &g);
fprintf(f, " %d", g);
i++;
} while (i < 3);
fclose(f);
}
int main() {
FILE*f=NULL;
savegrades(f);
_getch();
}