做一个系统加了下面这些以后汉字就开始乱码了
//删除函数void del(){ system("cls"); struct iphone *p,*temp; int x; temp=head; printf("请输入想要删除的销售人员代号\n"); scanf("%d",&x); while(temp->num!=x&&temp!=NULL) { p=temp; temp=temp->next; /* 跟踪链表的增长,即指针后移*/ } if(x==temp->num) /*找到相同人员代号*/ { if(temp==head) //要删除项在表头位置 { printf("\n删除代号是%d的销售人员信息\n",temp->num); head=head->next; //将结点从链表中删除 free(temp); //释放要删除结点 } else { p->next=temp->next; //结点在中间位置 printf("delete %d people\n",temp->num); free(temp); } } else printf("no find people");}
1、汉字乱码是因为缓冲区有字符,需要用fflush(stdin);来清空键盘缓冲区,
使用getch等都是治标不治本的办法,可以多学习一下fflush的使用,对于大批量的手动输入,很用。
2、例程:
等会我再按你说的看一下,那为什么只有加了这个函数以后才会乱码?是不是函数有错误?谢啦,还有一个问题有一个函数老是出错,求解,我把图片发到问题补充里,靠你了大神
追答if()条件里面的printf()函数不加取地址符&。
本回答被网友采纳