CJ_Finger
2015-01-17 13:42
采纳率: 60%
浏览 1.8k
已采纳

C语言【文件操作】的问题

各位学长,小生刚接触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;
}

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • autocyz 2015-01-17 14:13
    已采纳

    写入的元素的个数,这个元素的类型不确定。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • oyljerry 2015-01-17 14:05

    1表示写入一个结构体。

    评论
    解决 无用
    打赏 举报
  • baidu_25407487 2015-01-17 14:28

    要进行写入size字节的数据项的个数

    评论
    解决 无用
    打赏 举报
  • devmiao 2015-01-17 15:50
    评论
    解决 无用
    打赏 举报
  • reachfoo 2015-01-18 02:00

    for(m=0;m<3;m++)
    {
    scanf("%d%c%d",&studenta[m].numb,&studenta[m].name,&studenta[m].score);
    if(getchar()=='p')break;
    else fflush(stdin);//你加上这个清除输入缓冲区就好了。你需要多了解这个方面常见的问题,我以前学习时老师就强调过。
    }

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题