C语言输入语句无法正确读入输入数据疑问?

来源:百度知道 编辑:UC知道 时间:2024/05/12 14:47:51
标+号(倒数5.6排处)的地方总是无法正确读入输入的字符,求高手解答:

pBiTNode creatBiTree(){//创建树
pBiTNode root=(pBiTNode)malloc(sizeof(BiTNode));//根节点
pBiTNode p=(pBiTNode)malloc(sizeof(BiTNode));//用于标定当前操作结点
printf("请输入根结点的值:");
root->data=getchar();
getchar();
root->Parent=root->LChild=root->RChild=NULL;
p=root;
int doNum;//定义操作代码
while(1){
printf("请输入要执行的操作(1.为创建左子节点2.为创建右子节点3.转到左子节点4.为转到右子节点5.返回父母节点6.停止创建树):");
scanf("%d",&doNum);
switch(doNum){
case 1:
if(p->LChild!=NULL){
printf("该结点已有左子结点!\n");
}else{
p->LChild=insert(p);
printf("创建成功!\n");
}
break;
case 2:
if(p->RChild!=NULL){
printf("该结点已有右子结点!\n");
}else{
p->RChild=insert(p);
printf("创建成功!\n");
}
break

2、学会使用 fflush(stdin); 清空缓冲区,不要用一条空的getchar();

每次printf("输入结点")之前都fflush,一下看看.....

再不行把源程序给发上来