في هذا القسم سوف نتعلم وظيفة getchar() في لغة البرمجة C. أ الحصول على شار () الوظيفة هي غير قياسي الوظيفة التي تم تعريف معناها بالفعل في stdin.h ملف رأس لقبول إدخال واحد من المستخدم. بمعنى آخر، وظيفة مكتبة C هي التي تحصل على حرف واحد (حرف غير موقع) من stdin. ومع ذلك، فإن وظيفة getchar() تشبه وظيفة getc()، ولكن هناك اختلاف بسيط بين وظيفة getchar() و getc() في الدالة لغة البرمجة سي . يقرأ getchar() حرفًا واحدًا من الإدخال القياسي، بينما يقرأ getc() حرفًا واحدًا من أي تدفق إدخال.
بناء الجملة
int getchar (void);
ليس لديها أي معلمات. ومع ذلك، فإنها تُرجع أحرف القراءة على هيئة حرف غير موقع في int، وإذا كان هناك خطأ في ملف، فإنها تُرجع EOF في نهاية الملف.
نكتب الآن العديد من برامج وظائف getchar() لقبول الأحرف الفردية في لغة C وطباعتها باستخدام وظيفة putchar ().
اقرأ حرفًا واحدًا باستخدام الدالة getchar()
لنفكر في برنامج يأخذ واحدًا باستخدام وظيفة getchar() في لغة C.
برنامج.ج
#include #include void main() { char c; printf (' Enter a character '); c = getchar(); // get a single character printf(' You have passed '); putchar(c); // print a single character using putchar getch(); }
انتاج |
Enter a character A You have passed A
كما نرى في البرنامج أعلاه، فإنه يأخذ حرفًا واحدًا في وقت التشغيل من المستخدم باستخدام وظيفة getchar(). بعد الحصول على الحرف، يقوم بطباعة الحرف من خلال الدالة putchar().
اقرأ n من الأحرف من المستخدم باستخدام وظيفة getchar()
لنفكر في برنامج لقراءة n من الأحرف باستخدام وظيفة getchar() في لغة C.
Getchar.c
#include #include #include int main() { char ch; printf (' Enter a character ( If we want to exit press #) '); while (ch != '#') /* accept the number till the user does not enter the # to exit from the loop. */ { ch = getchar(); printf (' We have entered the character : '); putchar (ch); // print a single character printf (' '); } return 0; }
انتاج |
Enter a character ( If we want to exit.. press #) A We have entered the character: A We have entered the character: B We have entered the character: B We have entered the character: C We have entered the character: C We have entered the character:
كما نرى في الإخراج أعلاه، تقبل حلقة while بشكل مستمر حرفًا من المستخدم حتى لا يمرر المستخدم الحرف #. هنا تأخذ الدالة getchar() حرفًا واحدًا من الإدخال القياسي وتخصصه لمتغير ch. بينما تقوم الدالة putchar() بطباعة حرف القراءة.
قراءة حرف واحد باستخدام الدالة scanf()
لنفكر في برنامج لقراءة حرف باستخدام وظيفة مكتبة scanf() في لغة C.
بروغ.ج
#include #include int main() { char ch; printf (' Enter the character '); scanf ('%c', &ch); // get a single character, numeric or words printf( ' You have entered %c', ch); /* It print a single character or first letter of the words. */ return 0; }
انتاج |
Enter the character A You have entered A
كما نرى، عندما نقوم بتنفيذ البرنامج أعلاه، فإنه يأخذ حرفًا واحدًا أو مجموعة من الأحرف باستخدام وظيفة مكتبة scanf() بدلاً من وظيفة getchar(). ولكن هناك فرق بسيط. يمكن لوظيفة scanf() أن تأخذ حرفًا واحدًا أو مجموعة من الأحرف من المستخدم، بينما يمكن لوظيفة getchar() أن تقبل حرفًا واحدًا فقط.
هنا نقوم مرة أخرى بتنفيذ البرنامج أعلاه، وهذه المرة، يظهر النتائج أدناه.
Enter the character Apple You have entered A
اقرأ الأحرف باستخدام حلقة do-while
لنفكر في برنامج لقراءة الأحرف باستخدام وظيفة do while وgetchar() في لغة C.
Dowhile1.c
#include #include int main() { int ch, i = 0; char str[150]; printf (' Enter the characters from the keyboard (Press Enter button to stop). '); // use do while loop to define the condition do { ch = getchar(); // takes character, number, etc from the user str[i] = ch; // store the ch into str[i] i++; // increment loop by 1 } while (ch != ' '); // ch is not equal to ' ' printf('Entered characters are %s ', str); return 0; }
انتاج |
Enter the characters from the keyboard (Press Enter button to stop). Well b47gvb come Entered characters are Well b47gvb come
في البرنامج أعلاه، تقوم حلقة do-while بقبول الأحرف بشكل مستمر حتى يقوم المستخدم بتمريرها يدخل زر للخروج من الحلقة.