Qiyiguo627884 2023-03-16 22:24 采纳率: 70%
浏览 32
已结题

关于#c语言#的问题:当输入的供货商名称不是abc

#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include<stdbool.h>
#include<math.h>
#include<time.h>

struct supplier{//供货商信息结构体 supplier.txt
     char name[20];
     char address[50];//地址
     char phone[12];//电话
};
typedef struct supplier SUP;//简化,将"结构体类型"重新定义为SUP
struct link_supplier{
         char name[20];
         char address[50];//地址
         char phone[12];//电话
         struct  link_supplier *next;
};
typedef  struct link_supplier LSUP;


int main()//入库记录中的操作员暂且不赋值
{
     FILE *fp;
     fp=fopen("supplier.txt","wb+");
     SUP *psup;
     psup=(SUP*)malloc(sizeof(SUP));
     strcpy(psup->name,"a");
     fwrite(psup,sizeof(SUP),1,fp);
     strcpy(psup->name,"b");
     fwrite(psup,sizeof(SUP),1,fp);
     strcpy(psup->name,"c");
     fwrite(psup,sizeof(SUP),1,fp);

     fclose(fp);

     LSUP *hplsup,*plsup0,*plsup;//哨兵节点
     hplsup=plsup0=(LSUP*)malloc(sizeof(LSUP));
     hplsup->next=NULL;
     fp=fopen("supplier.txt","rb+");
     rewind(fp);
     psup=(SUP*)malloc(sizeof(SUP));
     while(fread(psup,sizeof(SUP),1,fp)!=0){//生成供货商信息链表
          plsup0->next=plsup=(LSUP*)malloc(sizeof(LSUP));
          plsup->next=NULL;
          printf("生成链表过程中plsup->next!=NULL条件为%d\n",plsup->next!=NULL);
          strcpy(plsup->name,psup->name);
          strcpy(plsup->address,psup->address);
          strcpy(plsup->phone,psup->phone);

          plsup0=plsup;
     }
     fclose(fp);

     char name[20];
     printf("输入供货商名称\n");
     scanf("%s",name);
     plsup=hplsup;
     int flag=0;
     while(plsup->next!=NULL&&flag==0){//死循环
          plsup=plsup->next;
          printf("链表遍历中plsup->next!=NULL条件为%d\n",plsup->next!=NULL);
          if(strcmp(plsup->name,name)==0){
               flag=1;
          }
     }

    return 55555555;
}

当输入的供货商名称不是a ,不是b ,不是c时,为什么会死循环?

  • 写回答

3条回答 默认 最新

  • threenewbee 2023-03-16 22:48
    关注
     fwrite(psup,sizeof(SUP),1,fp);
    

    这些写入的位置都一样,会覆盖之前的

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月23日
  • 修改了问题 3月16日
  • 创建了问题 3月16日

悬赏问题

  • ¥15 三极管电路求解,已知电阻电压和三级关放大倍数
  • ¥15 ADS时域 连续相位观察方法
  • ¥15 Opencv配置出错
  • ¥15 模电中二极管,三极管和电容的应用
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused