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

为什么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 17: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 对象指定了一个输入流。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容