C语言文件数据写入时总是多了其他的异外数据,该如何解决

C语言文件数据写入时总是多了其他的异外数据#includestdio.h#includestdlib.hvoidmain(){inti,ncharf

C语言文件数据写入时总是多了其他的异外数据
#include   <stdio.h>
#include   <stdlib.h>

void   main()
{
    int   i,n;
    char   flag;
    FILE   *f;
    char   stuname[10],stuclass[10],stuadd[16];
    f=fopen( "E:\\my.txt ", "w ");
    if(f==NULL)
    {
          printf( "file   not   open ");
          exit(1);
      }
    printf( "input   record   number\n ");
    scanf( "%d ",&n);
    for(i=0;i <n;i++)
    {
            printf( "input   data\n ");
            scanf( "%s,%s,%s ",stuname,stuclass,stuadd);
            fprintf(f, "%-10s%-10s%-16s\n ",stuname,stuclass,stuadd);
      }
      fclose(f);
}
例如我输入数据:aaa,aaa,aaa
结果文件里面数据为:aaa,aaa,aaaa
后面多了一个a

[解决办法]
scanf( "%d ",&n);在这个后面加一个 getchar()或者fflush(0);