m0_58848879 2021-07-06 08:07 采纳率: 100%
浏览 100
已采纳

为什么head=p1呀 if(fread(p1,LEN,1,fp)!=1)为什么不等于1的时候跳出

void MENU(void)
{
int number;
FILE *fp;
int t;
struct Computer *p1,*p2,*head;
p1=(struct Computer *)malloc(LEN);//malloc是分配一个不会重置的内存空间
head=p1;
if((fp=fopen("SellRecord.txt","rb"))==NULL)
{
printf(" 未找出该信息!回车键退出程序\n");
getchar();
exit(0);
}
while(!feof(fp))//非文件尾,继续执行
{
if(fread(p1,LEN,1,fp)!=1) break;
p1->next=(struct Computer *)malloc(LEN);
if(p1->next==NULL)
{
printf(" error:回车键退出程序\n");
getchar();
exit(0);
}
p2=p1;
p1=p1->next;
}
p2->next=NULL;
fclose(fp);
system("CLS");

展开全部

  • 写回答

1条回答 默认 最新

  • peng450 2021-07-06 09:18
    关注

    它的返回值代表读取到的字符数,这个函数我想要读取1个字符,但是返回的不是1,表示错误。
    size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)

    ptr -- 这是指向带有最小尺寸 size*nmemb 字节的内存块的指针。
    size -- 这是要读取的每个元素的大小,以字节为单位。
    nmemb -- 这是元素的个数,每个元素的大小为 size 字节。
    stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输入流。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    m0_58848879 2021-07-07 08:55

    谢谢

    回复
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部