请大家看一下这段程序错在哪里了?

来源:百度知道 编辑:UC知道 时间:2024/05/12 06:41:53
写的一段小程序,为了望一个文件里写一个结构体
#include"d:\tc3\head.h"
#define SIZE 4
struct stu
{
int num;
char n[10];
int a;
}s[SIZE];

void save()
{
FILE *f;
int t;
f=fopen("d:\\tc3\\file1","wb");
for(t=0;t<SIZE;t++)
{
fwrite(&s[t],sizeof(struct stu),1,f);
}
fclose(f);
}

main()
{
int i;
head();
for(i=0;i<SIZE;i++)
{
gets(s[i].n);
scanf("%d,%d",&s[i].num,&s[i].a);
}
save();
getch();
return;
}
输入到当中的时候就退出了,不能完整的输入要求的四个项目。

应该是输入缓冲区的问题,输入时靠一个回车表示结束,回车留在缓冲区中被下一次的输入语句当成字符串接受了,试试这样:
for(i=0;i<SIZE;i++)
{
fflush(stdin);//清空输入缓冲区
gets(s[i].n);
scanf("%d,%d",&s[i].num,&s[i].a);
}

完全写错了.