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

الصفحات

دوال إدخال وإخراج البيانات في لغة سي Data Input and Output


تتميز لغة سي عن باقي لغات الكمبيوتر بإستخدامها لمجموعة كبيرة من الدوال والأوامر المكتبية وهي ليست جزء من اللغة ، ويتم استدعاءه عند الحاجة إليه في البرامج وكما ذكرنا سابقاً أن كل دالة من هذه الدوال مرتبطة بملف توجيه خاص به حيث يتم استدعاءه في بداية البرنامج بعبارة < > Include حتي يتعرف المترجم علي الدالة.

في الشرح التالي سنقدم مجموعة من دوال الأدخال و الإخراج مثل Printf , Scanf ,Getch , Putch وتسمح هذه الدوال بنقل المعلومات بين الحاسب ووحدات الإدخال والإخراج الأساسية مثل لوحة المفاتيح والشاشة والطابعة.

Printf (Printing One Line). دالة المخرجات

تستخدم دالة Printf في إخراج البيانات من الحاسب إلي شاشة العرض Monitor ، ويمكن استخدام هذه الدالة في إخراج جميع القيم العددية والرموز الفردية والسلاسل.

الصورة العامة للدالة Printf

printf ("conversion string",variable list);

ملف التوجيه
#include <stdio.h>

نظراً  لأن كل Strings في لغة سي يجب أن تكون محاطة بعلامات التنصيص " ... " فإن Conversion String يجب أن تكون داخل علامات تنصيص ، واي شي يلي Conversion String هو اختياري ويتم تحديده عن طريق القيم التي تريد طباعتها.

طباعة السلسلة الحرفية Strings 

تعد الرسائل المكونة من السلسلة الحرفية Strings هي اسهل نوع من البيانات التي يمكن طباعته باستخدام Prinf ، ولكن لابد أن تقوم بوضع السلسلة الحرفية Strings بين علامات التنصيص.

لطباعة جملة "Type any keyboard character" باستخدام أمرPrinft نكتب الصيغة التالية:-

Printf ("Type any keyboard character");

في هذا المثال يتم طباعة ما بين علامتي التنصيص "..." Quotation Mark ، كما هو علي الشاشة حيث تعتبر السلسلة الحرفية الخاصة برسالة Type any keyboard character هي Conversion String الواردة في الصورة العامة للدالة Prinft

المثال التالي هو مثال لجملتي Prinft

Prinft ("This is a test");
Printf ("Type any keyboard character.");

قد لا تقوم الجملتان بإظهار المخرجات بالشكل المتوقع ، وهذا هو نتيجة تنفيذ البرنامج وطباعة جملتا Prinft

This is a test Type any keyboard character. _

لا تقوم لغة C بتحريك المؤشر أوتوماتيكيا أسفل إلي السطر التالي عندما يتم تنفيذ Printf , ولكن يجب تدرج Escape Sequences وتتكون من حرف او اكثر ، مسبوق بالشرطة المائلة العكسية في مكان Conversion String وذلك لأنتقال المؤشر إلي سطر جديد New Line ، ولهذا يتم وضع كود الأنتقال إلي سطر جديد وهو n\ داخل علامتي التنصيص.

Prinft("This is a test\n");
Printf ("Type any keyboard character.\n");

وفي هذا المثال نستخدم الكود n\  وعندما يجدة المترجم يترجمها إلي سطر جديد ويظهر التالي:

This is a test
Type any keyboard character.

الأكواد المستخدمة مع دالة الأخراج Printf

تأخد دالة الأخراج () Printf أشكال كثيرة ، واليكم بعض الأكواد المستخدمة معها :-


\n   الأنتقال إلي سطر جديد
\t    نقل المؤشر يميناً ثمانية مسافات  
\b   نقل المؤشر مسافة خلفية
\a   إخراج صوت الصافرة 
\\    طباعة الشرطة المائلة
\?    طباعة علامة الأستفهام
\"    طباعة علامة التنصيص
\'     ' طباعة العلامة 

ولطباعة قيم المتغيرات Variable List يجب ان يشتمل سلسلة التحويل Conversion String علي الأكواد لتحديد نوع البيانات المراد طباعتها وذلك لأخبار المترجم في لغة سي عن كيفية طباعتها ، وذلك لتوضيح الشكل الذي ستكون عليه الأرقام.

مثال 
Printf ("\n Your Character is %c\n",ch);

يشتمل الأمر السابق علي نوعين من الأكواد:-
  1. كود التجهيز C% وهو يدل علي نوع المتغير الذي سظهر بعد الفاصلة "," ويبدأ رمز التجهيز بإشارة النسبة المئوية % يليها حرف تحويل في هذه الحالة يستبدل المترجم  C% بقيمة المتغير سواء كانت عددية او حرفية ،  ويجب ان تشتمل سلسلة التحويل conversion string علي عدد من رموز التجهيز يساوي عدد المتغيرات المطلوب إظهارها.
  2. n\ وهو يعني سطر جديد كما سبق ذكره ، ويظهر المتغير ch خارج علامتي التنصيص ويفصله عن علامتي التنصيص فاصلة "," فإذا كانت قيمة المتغير ch هي R فإن الناتج يكون Your character is R
بعض أنواع الأكواد المستخدمة لتعريف المتغيرات المختلفة:-

%C     طباعة متغير حرفي
%I      طباعة متغير صحيح
%F     طباعة متغير حقيقي به كسر عشري
%E     طباعة متغير حقيقي علي أس
%S     طباعة جملة حرفية
%U    طباعة مغير صحيح بدون إشارة
%X   طباعة متغير بالنظام السادس عشر
%O    طباعة متغير بالنظام الثماني
%%    لطباعة علامة النسبة المئوية

المقالة التالية تتحدث عن التحكم في سير البرنامج
هل اعجبك الموضوع :

تعليقات