الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أرجو المساعدة في هذا الكود

بدأه mdodi في 28 أبريل 2009 · 3 رد · 358 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته ..

  إخواني أريد تفسير لطريقة عمل هذا الكود

#include <stdio.h>

int main (){

 int intVar;

 char charVar;

 

 printf("Enter Integer Value: ");

 scanf("%d", &intVar);

 printf("You entered: %d as Integer Value!\n");

 

 printf("Enter any character: ");

 scanf("%c", &charVar);

 printf("You entered: %c as character!\n");

 

 return (0);

}

حيث أنه من المتوقع ان يتم إدخال عدد صحيح .. و تتم طباعته .. و من ثم إدخال أي حرف و تتم طباعته .. و لكن للأسف يكون ناتج الكود أنه يستقبل العدد الصحيح .. لكن الحرف لا يمكن إستقباله .. أرجو تفسير ذك

تم تعديل هذه المشاركة بواسطة mdodi في 28 أبريل 2009 في 19:07

#2

السلام عليكــم ورحمـة الله وبركاتــه ،،

لكى يعمل برنامجك بشكل صحيح


#include<conio.h>
int main (){
int intVar;
char charVar;

printf("Enter Integer Value: ");
scanf("%d", &intVar);
printf("You entered: %d as Integer Value!\n",intVar);
fflush(stdin);
printf("Enter any character: ");
scanf("%c", &charVar);
printf("You entered: %c as character!\n",charVar);
getch();
return (0);
}
#include <stdio.h>

ويمكن استبدال fflush(stdin)

ب

getchar();

وتفسير ذلك أنك عندما تدخل العدد الصحيح وتضغط

enter

فعند استخدامنا للداله scanf جديده

وخصوصا عندما تستخدم مع متغير حرفى وحيد فإنها تستقبل رمز السطر الجديد الناشىء من

الضغط على Enter

فى الجزئيه السابقه

جرب البرنامج بدون

fflush(stdin);

او

getchar()

ولاحظ ما يحدث

تم تعديل هذه المشاركة بواسطة amin_mu123 في 28 أبريل 2009 في 22:29

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#3

وعليكــم السـلام ورحمة الله وبركاتـه..

ستجد الجواب هنا :lol:

#4

جزاكم الله خير .. على ما افدتوني به .. و الحمد لله إتضح السبب و الذي حسب ما فهمت من رد الأخ amin_mu123 و مشاركة الأخ clrscr_funct

أن هناك حاجة لعمل تصفية أو ما يسمى "flush input stream" إما بالدالة "fflush" أو بتقديم مسافة قبل c%

فشكراً على سرعة التجاوب

مواضيع مشابهة