源代码
#include
#include
#include
struct stu
{
char s[40];
int num;
int n[3];
}stud[3];
void main()
{
int i,j;
FILE *fp;
if((fp=fopen("tryfile","wr+"))==NULL)
{
printf("\n无法打开目标文件\n");
exit(1);
}
printf("\n存入数据:字符串、整型数字、3个数的整型数组\n");
for(i=0;i<3;i++)
{
printf("\n第%d次录入数据\n",i+1);
gets(stud[i].s);getchar();
scanf("%d",&stud[i].num);
for(j=0;j<3;j++)
scanf("%d",&stud[i].n[j]);getchar();
}
fwrite(stud,3*sizeof(struct stu),5,fp);
rewind(fp);
fread(stud,3*sizeof(struct stu),5,fp);
for(i=0;i<3;i++)
{
printf("\n%s\t%d\n",stud[i].s,stud[i].num);
for(j=0;j<3;j++)
printf("%d\n",stud[i].n[j]);
}
fclose(fp);
}
目测是你的 getchar(); 吃掉了一个字符
可能是因为你在打印整型数据时忘记了格式控制符中的占位符%d,导致第一个数被省略了。请在打印整型数据时加上占位符%d,例如:
printf("%d", num);
其中num为你要打印的整型变量名。如果还有其他问题,请提供更多代码和详细信息。