أبحث عن طريقة لقراءة space character لوحده فقط

getchar يمكنها القيام بهذا، لكنها تسبب مشاكل عند استعمالها داخل الحلقات، حيث تقرأ للمرة الأولى فقط لكن لا تقرأ في المرة الثانية، تقرأ في الثالثة و لا تقرأ في الرابعة.

هناك طريقة لقراءة space character في سلسلة من الرموز string هكذا:

scanf (" %[^\n]%*c", mot1);

هل هناك طريقة مماثلة لقراءة space فقط لوحده أريد هذا من أجل لعبة، اللاعب الأول يدخل كلمة أو جملة، و اللاعب الثاني عليه إيجادها عبر إدخال كل حرف على حدة

تحديث

يمكن استعمال getchar() نفسها و لحل المشكل الذي تسببه في الحلقات، يكفي أن تقوم باستثناء المدخل '\n' ما يحدث هو التالي: عندما تضع getchar داخل الحلقة، تنفذ لأول مرة، عندما تدخل الحرف 'x' متبوعا ب enter ، فإن enter يحتسب أيضا كحرف و يبقى مخزنا في buffer، و عندما تنفذ getchar للمرة الثانية ستأخذ قيمة enter (و التي هي 'n\'. أو على الاقل هذا ما فهمته.

الكود التالي يجب أن يعمل بشكل جيد

  c = getchar();
  if(c != '\n'){
   putchar(c);
   }

تبا هاته اللغة غير منطقية على الإطلاق