各位学长,小生刚接触C语言不久,特别是文件操作,希望解答以下问题,不胜感谢:
1.fwrite函数的第三个参数的意思,百科的解释有点看不懂。。。
2.下面有一段小程序,为什么输入成绩时到第二个就没有了?
而且读取文件输出时,有的数据会变成一串数字。。。
#include "stdafx.h"
#include
#include
struct stu
{
int numb;
char name[10];
int score;
}studenta[3],studentb[3];
int main(int argc, char* argv[])
{
int m;
int a;
FILE *fp=fopen("file.txt","ab");
if(fp==NULL)
{
printf("Erroe!Can not open the file!");
exit(0);
}
else
printf("请选择您需要的服务:\n1.录入学生成绩,P键结束录入\n2.查询学生成绩\n");
scanf("%d",&a);
switch(a)
{
case 1:printf("请按“学号 姓名 成绩”输入:\n");
for(m=0;m<3;m++)
{
scanf("%d%c%d",&studenta[m].numb,&studenta[m].name,&studenta[m].score);
if(getchar()=='p')break;
}
fwrite(&studenta,sizeof(struct stu),1,fp);
break;
case 2:fread(&studentb,sizeof(struct stu),1,fp);
for(m=0;m<3;m++)
{
printf("%d %c %d",studentb[m].numb,studentb[m].name,studentb[m].score);
};break;
default:printf("Error!EXE will be close!");exit(0);
}
fclose(fp);
return 0;
}