القائمة الرئيسية

الصفحات

المدخلات و المخرجات C - Input and Output

شرح المدخلات و المخرجات C - Input and Output

 عندما نقول Input ، فهذا يعني إدخال بعض البيانات في البرنامج. يمكن إعطاء المدخلات في شكل ملف أو من سطر الأوامر. توفر برمجة C مجموعة من الوظائف المضمنة لقراءة المدخلات المعينة وإدخالها إلى البرنامج حسب المتطلبات.

عندما نقول الإخراج ، فهذا يعني عرض بعض البيانات على الشاشة أو الطابعة أو في أي ملف. توفر برمجة C مجموعة من الوظائف المضمنة لإخراج البيانات على شاشة الكمبيوتر بالإضافة إلى حفظها في ملفات نصية أو ثنائية.

الملفات القياسية

تعامل برمجة C جميع الأجهزة كملفات. لذلك يتم التعامل مع الأجهزة مثل الشاشة بنفس طريقة معالجة الملفات ويتم فتح الملفات الثلاثة التالية تلقائيًا عند تشغيل برنامج لتوفير الوصول إلى لوحة المفاتيح والشاشة.

ملف قياسيمؤشر الملفجهاز
المدخلات القياسيةستدينلوحة المفاتيح
الإخراج القياسيstdoutشاشة
خطأ تقليديستديرشاشتك

مؤشرات الملف هي وسيلة للوصول إلى الملف لغرض القراءة والكتابة. يشرح هذا القسم كيفية قراءة القيم من الشاشة وكيفية طباعة النتيجة على الشاشة.

دالتا getchar () و putchar ()

تقوم وظيفة int getchar (void) بقراءة الحرف التالي المتاح من الشاشة وإعادته كعدد صحيح. تقرأ هذه الوظيفة حرفًا واحدًا فقط في كل مرة. يمكنك استخدام هذه الطريقة في الحلقة في حالة رغبتك في قراءة أكثر من حرف من الشاشة.

تقوم وظيفة int putchar (int c) بوضع الحرف الذي تم تمريره على الشاشة وإرجاع نفس الحرف. تضع هذه الوظيفة حرفًا واحدًا فقط في كل مرة. يمكنك استخدام هذه الطريقة في الحلقة في حالة رغبتك في عرض أكثر من حرف على الشاشة. تحقق من المثال التالي -

#include <stdio.h>
int main( ) {

   int c;

   printf( "Enter a value :");
   c = getchar( );

   printf( "\nYou entered: ");
   putchar( c );

   return 0;
}

عندما يتم تجميع التعليمات البرمجية أعلاه وتنفيذها ، فإنه ينتظر منك إدخال بعض النص. عند إدخال نص والضغط على Enter ، يتابع البرنامج ويقرأ حرفًا واحدًا فقط ويعرضه على النحو التالي -

$./a.out
Enter a value : this is test
You entered: t

يحصل () ويضع () وظائف

و شار * يحصل (تشار * ق) وظيفة يقرأ خط من ستدين في المخزن المؤقت المشار إليه بواسطة الصورة حتى إما سطر جديد تنتهي أو EOF (نهاية الملف).

تقوم وظيفة int puts (const char * s) بكتابة السطر الجديد اللاحق 's' و 'a' إلى stdout .

ملاحظة: على الرغم من أنه قد تم إهمال استخدام وظيفة get () ، إلا أنك تريد استخدام fgets () بدلاً من استخدام الدالة get .

#include <stdio.h>
int main( ) {

   char str[100];

   printf( "Enter a value :");
   gets( str );

   printf( "\nYou entered: ");
   puts( str );

   return 0;
}

عندما يتم تجميع التعليمات البرمجية أعلاه وتنفيذها ، فإنه ينتظر منك إدخال بعض النص. عند إدخال نص والضغط على Enter ، يتابع البرنامج ويقرأ السطر بالكامل حتى النهاية ، ويعرضه على النحو التالي -

$./a.out
Enter a value : this is test
You entered: this is test

وظائف scanf () و printf ()

تقوم وظيفة int scanf (تنسيق const char * ، ...) بقراءة المدخلات من تيار الإدخال القياسي stdin وتفحص الإدخال وفقًا للتنسيق المقدم.

تقوم وظيفة int printf (const char * format، ...) بكتابة الإخراج إلى تيار الإخراج القياسي stdout وتنتج الإخراج وفقًا للتنسيق المقدم.

و شكل يمكن أن يكون سلسلة ثابت بسيطة، ولكن يمكنك تحديد٪ s، و٪ د، ج٪،٪ و، الخ، لطباعة أو قراءة الجمل، وعدد صحيح، حرف أو تطفو على التوالي. هناك العديد من خيارات التنسيق الأخرى المتاحة والتي يمكن استخدامها بناءً على المتطلبات. دعنا ننتقل الآن بمثال بسيط لفهم المفاهيم بشكل أفضل -

#include <stdio.h>
int main( ) {

   char str[100];
   int i;

   printf( "Enter a value :");
   scanf("%s %d", str, &i);

   printf( "\nYou entered: %s %d ", str, i);

   return 0;
}

عندما يتم تجميع التعليمات البرمجية أعلاه وتنفيذها ، فإنه ينتظر منك إدخال بعض النص. عند إدخال نص والضغط على إدخال ، يتابع البرنامج ويقرأ الإدخال ويعرضه على النحو التالي -

$./a.out
Enter a value : seven 7
You entered: seven 7

هنا ، تجدر الإشارة إلى أن scanf () تتوقع إدخالًا بنفس التنسيق الذي قدمته٪ s و٪ d ، مما يعني أنه يجب عليك تقديم مدخلات صالحة مثل "عدد صحيح من السلسلة". إذا قمت بتوفير "سلسلة سلسلة" أو "عدد صحيح" ، فسيتم افتراض أنها إدخال خاطئ. ثانيًا ، أثناء قراءة سلسلة ، يتوقف scanf () عن القراءة بمجرد أن يصادف مسافة ، لذا فإن "هذا اختبار" عبارة عن ثلاث سلاسل لـ scanf ().


الصفحة التالية                                                                                            الصفحة السابقة

هل اعجبك الموضوع :

تعليقات