输入直接回车介绍了,跳不出循环,😭😭
scanf("%s",p->data);就可以了
但你上面的代码是有问题的,p = new LNode; p=L->next;这么写的话,前一句new就白瞎了,你接着就改了p的指向,导致new出来的成了野指针,失去控制,内存泄漏啦
LNode *p = L;
while(p->next != NULL)
p = p->next;
LNode *q = new LNode;
scanf("%s",q->data);
q->next = NULL;
p->next = q;
p = q;
printf("已成功添加方案.......
.....
供参考:
#define Elemtype char
#define maxsize 1000
typedef struct{
char date[maxsize];
int period;
char note[maxsize];
}Fitness;
Fitness F;
typedef struct LNode{
Elemtype data[maxsize];
struct LNode *next;
}LNode,*LinkList;
void Increase(LinkList &L){
int sum = Determine(L);
printf("表中目前有%d种方案\n",sum);
int i = sum;
int length = 0;
LNode *p = L;
while(p->next != NULL) p = p->next;
printf("输入您所需要新增的方案:");
while(1){
LNode *q = new LNode;
scanf("%s",q->data);
if(strcmp(q->data,"#")==0) break;
q->next = NULL;
p->next = q;
p = q;
i++;
printf("已成功添加方案.......\n");
}
delete q;
//.......
}