کاراکتر بعد از scanf خونده نمیشه - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

کاراکتر بعد از scanf خونده نمیشه

+1 امتیاز

 این کد مشکلش چیه ؟

   struct node *createTree(struct node *root)
{
  int n;
  char ch;
  struct node *t1;
  t1=(struct node *)malloc(sizeof(struct node));
  printf("Enter Element\n");
  scanf("%d",&n);
  if(root==NULL)
    {
  t1->data=n;
  t1->left=NULL;
  t1->right=NULL;
  root=t1;
    } 

  printf("do you want to add node at left?\n");


scanf("%c",&ch);

  if(ch=='y')
    {
      t1->left=createTree(t1->left);

    }


   printf("do you want to add node at right?\n");
   scanf("%c",&ch);

   if(ch=='y')
    {
      t1->right=createTree(t1->right);

    }

اون scanf دومم بعضی وقت ها کار نمی کنه !!! خیلی عجیبه

سوال شده فروردین 5, 1393  بوسیله ی حمید رضوانی (امتیاز 28)   1 3 3
دوباره تگ گذاری شد فروردین 11, 1393 بوسیله ی BlueBlade

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

به خاطر اینه که کاراکتر \n  و بقیه حروفی که داخل اون خط وارد میشه داخل buffer میمونه

بعد از scanf اول و دوم این کد رو بنویس

    while (getchar()!='\n');

 

پاسخ داده شده فروردین 5, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد فروردین 5, 1393 بوسیله ی حمید رضوانی
حل شد مرسی
...