انتظر إدخال المستخدم: لغة سي

Wait User Input C Language



في لغة البرمجة سي توجد بعض وظائف الإدخال. باستخدام هذه الوظائف ، يمكننا انتظار إدخال المستخدم. سنناقش في هذا البرنامج التعليمي وظائف الإدخال بالتفصيل.

تنسيق السلسلة

سلسلة التنسيق هي تنسيق البيانات المدخلة. يبدأ هذا التنسيق بعلامة٪ ويتبعه محدد التنسيق. محدد التنسيق هو حرف معين يتم استخدامه لنوع البيانات التي تتم قراءتها.







arg1، arg2، arg3 ... هي عناوين المتغيرات حيث سيتم تخزين البيانات المدخلة.



scanf () الوظيفة

بناء الجملة: int scanf (سلسلة تنسيق ، arg1 ، arg2 ، arg3 ...)



بعض المحددات المستخدمة بشكل متكرر هي كما يلي:





  • د - يستخدم لقيم عددية.
  • F - يستخدم للرقم العائم.
  • ج - يستخدم لقيمة حرف واحد.
  • س - يستخدم للسلاسل.

باستخدام مفرد scanf () وظيفة ، يمكن أخذ إدخال واحد أو أكثر من المستخدم.

ال scanf () تأخذ الوظيفة المدخلات من الإدخال القياسي (لوحة المفاتيح) وتخزن القيمة في متغير. تنتظر الوظيفة إدخال المستخدم حتى يضغط المستخدم على مفتاح الإدخال. يتم تخزين القيمة التي تم إدخالها في مخزن مؤقت. عند الضغط على مفتاح الإدخال ، scanf () وظيفة تبدأ في القراءة.



مثال 1: إدخال عدد صحيح

//Example1.c
#يشمل

intالأساسية(){

intأنا؛
printf ('أدخل قيمة العدد الصحيح الأول:')؛
مسح ('٪د'و &أنا)؛
printf (لقد أدخلت:٪ dن'وأنا)؛

printf ('أدخل قيمة العدد الصحيح الثاني:')؛
مسح ('٪د'و &أنا)؛
printf (لقد أدخلت:٪ dن'وأنا)؛

إرجاع 0؛
}

في Example1.c ، رأينا ذلك عندما أدخلنا قيمًا صحيحة واضغطنا على مفتاح الإدخال. ال scanf () تأخذ الدالة القيمة وتخزنها في المتغير. إذا أدخلنا القيم مفصولة بمسافة ، فستعود الوظيفة عند مواجهة مساحة ولكن تظل القيم بعد المسافة في مخزن الإدخال المؤقت. لهذا السبب الثاني scanf () لن تنتظر وظيفة إدخال المستخدم ، بل تأخذ المدخلات من المخزن المؤقت.

مثال 2: إدخال حرف واحد

//Example2.c
#يشمل

intالأساسية(){

شارج؛
printf ('أدخل حرفًا:')؛
مسح ('٪ ج'و &ج)؛
printf (لقد أدخلت:٪ cن'وج)؛

إرجاع 0؛
}

في example2.c ، رأينا ذلك عندما نستخدم ٪ ج محدد scanf () تأخذ الوظيفة حرفًا واحدًا فقط حتى لو أدخلنا أكثر من حرف واحد.

مثال 3: إدخال حرف واحد (عدة مرات)

// مثال 3.c
#يشمل

intالأساسية(){

شارج؛
printf ('أدخل الحرف الأول:')؛
مسح ('٪ ج'و &ج)؛
printf (لقد أدخلت:٪ cن'وج)؛

printf ('أدخل الحرف الثاني:')؛
مسح ('٪ ج'و &ج)؛
printf (لقد أدخلت:٪ cن'وج)؛

إرجاع 0؛
}

مثال 4 :

// مثال 4.c
#يشمل

intالأساسية(){

شارج؛
printf ('أدخل الحرف الأول:')؛
مسح ('٪ ج'و &ج)؛
printf (لقد أدخلت:٪ cن'وج)؛

printf ('أدخل الحرف الثاني:')؛
مسح ('٪ ج'و &ج)؛
printf (لقد أدخلت:٪ cن'وج)؛

إرجاع 0؛
}

مثال 5: سلسلة الإدخال

// مثال 5. ج
#يشمل

intالأساسية(){

شاراسم[خمسة عشر]؛
printf ('أدخل أسمك: ')؛
مسح ('٪س'واسم)؛
printf (لقد أدخلت:٪ sن'واسم)؛

إرجاع 0؛
}

وظيفة getc ()

بناء الجملة: int getc (FILE * stream)

getc () تستخدم الوظيفة لقراءة حرف من مؤشر FILE (دفق). للقراءة من لوحة المفاتيح ، علينا أن نستخدم ستدين . تقوم هذه الدالة بإرجاع قيمة عدد صحيح لحرف القراءة.

المثال 6:

// مثال 6.c
#يشمل

intالأساسية(){

شارج؛
printf ('أدخل الحرف الأول:')؛
في حين((ج= getc (ستدين))=='ن')؛
printf (لقد أدخلت:٪ cن'وج)؛

في حين( getc (ستدين)! ='ن')؛

printf ('أدخل الحرف الثاني:')؛
في حين((ج= getc (ستدين))=='ن')؛
printf (لقد أدخلت:٪ cن'وج)؛

إرجاع 0؛
}

دالة getchar ()

بناء الجملة: int getchar (باطل)

getchar () الوظيفة هي نفسها getc () . الاختلاف الوحيد هو ذلك getc () يمكن قراءة الوظيفة من أي دفق إدخال ، بينما getchar () وظيفة تقرأ من الإدخال القياسي فقط.

المثال 7:

// مثال7.c
#يشمل

intالأساسية(){

شارج؛
printf ('أدخل الحرف الأول:')؛
في حين((ج= getchar ())=='ن')؛
printf (لقد أدخلت:٪ cن'وج)؛

في حين( getchar ()! ='ن')؛

printf ('أدخل الحرف الثاني:')؛
في حين((ج= getchar ())=='ن')؛
printf (لقد أدخلت:٪ cن'وج)؛

إرجاع 0؛
}

استنتاج

في هذه المقالة ، رأينا كيف تُستخدم وظائف الإدخال في لغة سي. يتم أخذ كل هذه الوظائف من مدخلات المخزن المؤقت وعندما نستخدم هذه الوظائف عدة مرات ، يتعين علينا مسح المخزن المؤقت. خلاف ذلك ، لن تنتظر الوظائف إدخال المستخدم وتأخذ المدخلات من المخزن المؤقت.