58行,输出加个换行符试试,输入x后要回车
可能是search里有死循环,看下你的完整代码
/*
**函数名:Search
**功能:根据电影名称查找对应影片信息
**输入参数:电影票链表头指针FilmNodeHead
**返回值:无
*/
void Search(struct FilmNode *FilmNodeHead)
{
struct FilmNode *FilmNodeSea;
char fName[10];
FilmNodeSea = FilmNodeHead->Next; //Sea指针就是头指针Next指向的结点的地址
if(FilmNodeSea == NULL) //空链表就退出
{
printf("No films record!\n");
return;
}
printf("Input the film name:"); //链表非空
gets(fName); //接收电影名称
Print_FilmHead(); //打印栏目
while(FilmNodeSea != NULL) //Sea指向的结点存在时候
{
if(strcmp(FilmNodeSea->fData.fName,fName) == 0) //找到了对应的影片
{
Print_FilmData(FilmNodeSea); //输出影片相关信息
break;
}
else
FilmNodeSea = FilmNodeSea->Next; //该结点没有符合要求的电影名称,Sea指针指向下一个结点
}
if(FilmNodeSea == NULL) //整个链表都找完啦
printf("Sorry,can't find record!\n");
}
该函数主要在遍历Film链表中,对比各个结点中的FilmNodeSea->fData.fName电影名和要查找的电影名字fName是否匹配,找到就输出电影成员信息。