دوال إدخال البيانات من المستخدم
إدخال البيانات من المستخدم, يوجد بعض الدوال بلغات البرمجة ليس فقط لغة C, تطلب من المستخدم إدخال بيانات لتقوم هي بدور معين, في درسنا هذا سوف نذكر بعض هذه الدوال و من هذه الدوال:
- دالة scanf().
- دالة getchar().
- دالة getche().
- دالة getch().
- دالة putchar().
- دالة puts().
- دالة gets().
دالة الإدخال العامة scanf
دالة scanf في لغة سي تستخدم هذه الدالة لقراءة أو إستقبال البيانات من أداة الإدخال "لوحة المفاتيح" أثناء تنفيذ البرنامج و تكون تلك القيم أعداد صحيحة أو كسرية أو حروف كما في الأمثله التالية.
مثال 1
إدخال رقم صحيح بإستخدام Int.
#include<stdio.h> main() { int a; printf("inter is number = "); scanf("%d", &a); printf("%d \n" , a); }
قمنا بالإعلان عن متغير إسمه a و قمنا بطباعة نص عادي و هو "أدخل رقم" و بعده يتم تنفيذ السطر sacnf أي أدخل رقم و عند إدخال رقم يتم طباعة الرقم المدخل كما يبين التنفيذ التالي
inter is number = 23 23
مثال 2
إدخال حرف بإستخدام char.
#include<stdio.h> main() { char a ; printf("inter One char = " ,a); scanf("%c" , &a); printf("%c \n" ,a); }
في التنفيذ قمنا بإدخال حرف و الضغط على زر Enter و يقوم بطباعه الحرف.
مثال 3
إدخال عدد حقيقي عشري بإستخدام Float.
#include<stdio.h> main() { float a ; printf("inter number by float = " , a); scanf("%f" , &a); printf("%f \n" ,a); }
في التنفيذ قمنا بإدخال عدد حقيقي 1.1 و الضغط على Enter و يقوم بطباعه الرقم بالشكل 1.1000000.
مثال 4
أكتب برنامج يقوم بإستقبال رقم من المستخدم ثم يتم تخزينه في متغير ثم طباعته مرة أخرى.
#include<stdio.h> int main() { int num; printf("Enter a Number : "); scanf("%d", &num); printf("The number you have entered = %d", num); return 0; }
إجراء عمليات حسابية من خلال إدخال الأرقام عن طريق المستخدم
نستطيع جعل المستخدم بأن يدخل أرقام للبرنامج و بدوره البرنامج يقوم بعمليات حسابية للأرقام المُدخلة فيه, مثلاً نُريد كتابة برنامج آلة حاسبة و نطلب من المستخدم إدخال الأرقام التي يريدها و البرنامج يقوم بالعملية المطلوبة و إخراجها على الشاشة.
مثال 5 إدخال اعداد صحيحة.
#include<stdio.h> main() { int a , b , c; printf("inter is number1 = "); scanf("%d", &a); printf("inter is number2 = "); scanf("%d", &b); c=a+b; printf("%d \n" ,c)' }
في التنفيذ قمنا بإدخال العدد الأول و هو 3 و الضغط على مفتاح Enter الموجوده في لوحة المفاتيح ثم أدخلنا العدد الثاني و ضغطنا Enter و قام بجمع العددين و كان ناتجهما هو 8.
مثال 6 إدخال اعداد حقيقيه بإستخدام float
#include<stdio.h> main() { float a , b , c; printf(" Enter number by float = " ,a); scanf("%f" , &a); printf("Enter anther number by float = " ,b); scanf("%f" , &b); c=a+b; printf("%f \n" ,c); }
في التنفيذ قمنا بإدخال العدد الأول و هو 1.1 و الضغط على Enter الموجودة في لوحة المفاتيح ثم أدخلنا العدد الثاني و هو 2.1 و الضغط Enter و قام بجمع العددين و كان ناتجهما هو 3.2.
دوال إستقبال بيانات حرفية من المستخدم
تحدثنا في الأعلى عن أهم دالة و هي داله scanf التي تقوم بقراءة أو إستقبال البيانات من أداة الإدخال لوحة المفاتيح أثناء تنفيذ البرنامج و تكون تلك القيم اعداد صحيحة أو كسريه أو حروف. و الآن سوف نتحدث عن عدة دوال مسؤولة عن إدخال حرف واحد بالرغم من أن الدالة scanf تستقبل جميع أنواع البيانات إلا أن لغة السي C لديها دوال أخرى للتعامل مع الحروف و العبارات.
دالة getchar() لإستقبال البيانات
دالة getchat() تُستخدم لإدخال حرف واحد فقط و يظهر الحرف بعد الضغط على زر enter من الكيبورد كما في المثال التالي :
#include<stdio.h> main() { char a; a=getchar(); printf("%c",a); }
عندما قمنا بكتابة أول حرف من الإسم و قمنا بالضغط على Enter قام بطباعه الحرف الذي أدخلته.
و اذا قمنا بكتابه جملة كاملة لنرى ماذا سوف يحدث "قمت بكتابة إسم Saja".
Saja S
نلاحظ هنا قام بطباعه اول حرف فقط و تجاهل الباقي
دالة getche() لقراءة المدخلات في لغة سي
عند إستخدام دالة getche() لا بد من إستخدام مكتبة conio.h و الدالة تستخدم لقراءة حرف واحد و الفرق بينها و بين getchar هو أن الدالة getchar لا بد عند التنفيذ الضغط على enter من الكيبورد و لا تحتاج إستخدام مكتبة conio.h أما الدالة getche تحتاج إلى مكتبة conio.h و لا تحتاج إلى الضعط على زر enter من الكيبورد و تستخدم لإدخال حرف واحد فقط و يظهر الحرف مباشرة بعد كتابته.
#include<stdio.h> #include<conio.h> main() { char a; a=getche(); printf("%c \n",a); }
دالة getch() لقراءة المدخلات في لغة سي
عند إستخدام دالة getch() لا بد من إستخدام مكتبة conio.h و الدالة تُستخدم لقراءة حرف واحد. و الفرق بينها و بين getche أن الداله getche تحتاج. إلى مكتبة conio.h و لا تحتاج إلى الضعط على زر enter من الكيبورد. و تستخدم لإدخال حرف واحد فقط و يظهر الحرف مباشرتاً بعد كتابته و أن الدالة getch تحتاج إلى مكتبة conio.h و لا تحتاج. إلى الضعط على زر enter من الكيبورد و تستخدم لإدخال حرف واحد فقط ولا يظهر الحرف علي الشاشة.
#include<stdio.h> #include<conio.h> main() { char a; a=getch(); printf("%c \n",a); }
دالة putchar() لطباعة حرف واحد في لغة سي
في الدروس السابقة تعرفنا على أن الدالة المستخدمة في الطباعة هي الدالة printf, الآن سنتعرف على دالة مسؤولة عن امر طباعه حرف واحد و هي الدالة putchar.
#include<stdio.h> main() { char a; a=getchar(); putchar(a); }
دالة puts() للطباعة في لغة سي
دالة puts() تستخدم هذه الدالة لطباعه حروف كإسم, نلاحظ قمت بكتابة عدة أسماء بداخل الدالة puts.
#include<stdio.h> main() { puts("Muhammad Alush"); puts("Database"); puts("Saja CS"); }
بعد أن قمنا بكتابتهم و تنفيذ الكود هل سيقوم بالعمل كالدالة printf ام لا.
Muhammad Alush Database Saja CS
دالة gets() لإستقبال حروف من المستخدم وطباعتها
دالة gets() تستخدم هذه الدالة لإدخال حروف من قبل المستخدم و تقوم بطباعتها بإستخدام الدالة puts.
#include<stdio.h> main() { char name[10]; gets(name); puts(name); }
معنى char name[10] أن المتغير إسمه name من نوع حرفي char الذي يصلح لتخزين كلمة اقصاها طول 10.
Saja Osman Saja Osman
نلاحظ أنه قام بأمر إدخال و إخراج و هي كتابة إسم saja osman و قام بطباعته.