قائمة المدونات الإلكترونية

الخميس، 28 أبريل 2011

عمليات الادخال في لغة ++C

- القواعد العامة الخاصة بإدخال البيانات  
- عمليات الإدخال للبيانات المختلفة Input Process        
- الإدخال باستخدام دالة scanf() 
- الإدخال باستخدام دالة gets() 
- الإدخال باستخدام دالة getch 
- الإدخال باستخدام دالة getchar
 

10 التعليقات:

غير معرف يقول...

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

ويكفينا هنا - لو كنا مبتدئين في البرمجة- أن نتذكر دائما أن المتغير ما هو إلا اسم لأحد الأماكن التي تختزن فيها البيانات في الذاكرة.
وأسماء المتغيرات يصطلح عليها في لغة الC بأسماء البيانات ( Identifiers)
وهناك قواعد محددة لاختيار أسماء البيانات وهي:

1-ألا يكون اسم البيان أحد الكلمات المحجوزة باللغة ( Reserved words ) أو الكلمات التي تحمل معنى خاصا مثل( main ) ويمكن التعرف على الكلمات المحجوزة باللغة من دفتر التشغيل المصاحب للمترجم.
2-يمكن أن يحتوي الاسم على أى حرف من الحروف الأبجدية ( A-Z) سواء صغيرة كانت أم كبيرة، وأي رقم من الأرقام (0-9 ) كما يمكن أن تحتوي على علامة الشرطة السفلى ( _ ) ولكن لا يجوز أن يبدأ الاسم برقم.
3-لا قيود على طول الاسم ، وتتيح هذه الميزة استخدام أسماء معبرة عن مضمونها، ومن الأفضل دائما استخدام الاسم المعبر عن محتوى المتغير لتسهيل عملية فحص البرنامج في حالة الخطأ من جهة، ولتسهيل عملية الإضافة والتعديل للبرنامج.
4-الحروف الكبيرة و الصغيرة ليست متكافئة في لغة C فمثلا اسم البيان(MY_NUMBER) يختلف عن الاسم ( my_number) وكلاهما يختلف عن الاسم ( My_Number).

الإعلان عن المتغيرات:
ليتمكن المستخدم من استخدام المتغيرات التي يريدها يتطلب البرنامج المكتوب بلغة C الإعلان المسبق عن أسمائها ونوعياتها في مستهل البرنامج .

وتصنف المتغيرات بحسب البيانات التي يمكن أن تختزن فيها فهناك المتغيرات الصحيحة ( أي التي تصلح لإختزان الأعداد الصحيحة) و هناك المتغيرات الحقيقية ( أي التي تختزن الأعداد الحقيقية)، ومع تقدمنا في اللغة سنتعرف على نوعيات أخرى من المتغيرات.

والشكل التالي يوضح برنامجا قمنا فيه بالإعلان عن المتغيرات

CODE

#include
main()
{
/* variable declaration*/
int a;
float b;
/*Display output */
printf(“%d\n”,a);
printf(“%f\n”,b);
}




وكما نرى في البرنامج أنه قد تم الإعلان عن متغيرين الأول ( a) وهو من النوع الصحيح (integer) وقد استخدمنا الكلمة int للإعلان عنه.
وأما المتغير الثاني ( فهو يختزن الأعداد الحقيقية ( Real) وقد استخدمنا معه الكلمة float للإعلان عنه.

وكما ذكرنا سابقا، نلاحظ أن عبارة الإعلان تنتهي بفاصلة منقوطة كسائر عبارات البرنامج، كما أنه يلزم ترك مسافة خالية على الأقل بعد كل من الكلمات المحجوزة ( int أو float)
وبعد ذلك تقوم بقية البرنامج بطباعة محتوى المتغيرات a,b ولأننا لم نخزن في هذين المتغيرين أية بيانات فإن ما نحصل علية ليس إلا بعض المخلفات الموجودة في الذاكرة، وهي بلا معنى على الإطلاق والشكل التالي يوضح مثالا لهذة المخلفات كنتيجة لتشغيل البرنامج


CODE

22348
476.950




تخزين البيانات في المتغيرات ( Assignment ):

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


CODE

#include
main()
{
/* variable declaration*/
int a;
float b;
/* Assignment */
a=1000;
b=796.5;
/*Display output */
printf(“%d\n”,a);
printf(“%f\n”,b);
}




وعند تنفيذ هذا البرنامج نحصل على النتيجة الموضحة بالشكل

CODE

1000
796.5



تعليق :
ابراهيم زكريا

غير معرف يقول...

أولا :
دالة الادخال


scanf ( ) ;


وهي دالة لإدخال أي نوع من أنواع الـ Data Type .
وممكن نشوف هذا المثال و يكون كافي :


#include "stdio.h"
main ( )
{
int a ;
char string[20] ;
printf ("nEnter an int VALUE: ") ;
scanf ("%d",&a) ;
printf ("nEnter a string: ") ;
scanf ("%s",string) ;
printf ("The int value is:%d ,,, the string is:%sn", a, string) ;
return 0 ;
}


لنلقي نظرة على البرنامج بسرعة :
في الأول عرفنا متغيرين الاول من نوع int و الثاني من نوع char
وهي مصفوفة لأن الجمل في السي هي عبارة عن مصفوفة من نوع char .
ثم طبعنا عبارة تطلب من المستخدم إدخال قيمة من نوع int
ثم إستخدمنا الدالة scanf لإدخال هذه القيمة في المتغير a ,
لاحظ أننا كتبنا a& وليس a و هذا مطلب اساسي لجميع المتغيرات
ماعدا نوع string , وهذا موضوع في الـ Functions يسمى
Call By reference. وذلك لأن قيمة a ستتغير بعد ما نستدعي هذه الدالة .
ثم قمنا بطلب آخر من المستخدم و هو إدخال جملة و لكن هذه المرة لم نقم بكتابة string& لماذا ؟
لأن المصفوفة في السي عبارة عن مؤشر Pointer و علامة * مع علامة & لا تكتب .
ثم في السطر الأخير طبعنا القيموة a و قيمة المصفوفة string .
- تذكر هذا المثال جيداً لأننا سوف نقوم ببعض المقارنات بين الدالة scanf و دالة أخرى سنراها في هذا الدرس .

ثانيا :
دوال الإدخال


1. getchar ( ) ;
2. getche ( ) ;
3. getch ( ) ;


وهذه دوال إدخال حرف واحد و هي متشابهه في الشكل و لكن مختلفة في الأداء نوعاً ما .

الدلة الأولى : getchar
توجد ضمن ملف التوجية stdio.h و تستخدم لإدخال حرف واحد ويظهر على الشاشة بعد الكتابة ولا ينتقل إلى الأمر الذي بعده إلا إذا ضغط المستخدم على مفتاح Enter .

مثال:


char ch ;
ch = getchar() ;
printf ("%c",ch) ;



الدلة الثانية : getche
وتوجد ضمن ملف التوجية conio.h و تستخدم ايضاً لإدخال حرف واحد و يظر على الشاشة إلا أنها تختلف عن الدالة getchar في أنها لا تحتاج الضغط على مفتاح Enter للإنتقال للأمر التالي...
مثال:


char ch ;
ch = getche() ;
printf ("%c",ch) ;



الدالة الثالثة : getch
وتوجد ضمن ملف التوجية conio.h ومع هذه الدالة الأمر مختلف عن الدالتين السابقتين, فالدالتين
السابقتين كان الحرف يظهر على الشاشة و لكن هنا لا يظهر و لا يطلب من المستخدم الضغط على مفتاح Enter للإكمال .
مثال :


char ch ;
ch = getch();
printf("%c",ch);



طبعاً أولاً نفذ هذه الدوال الثلاث و ضعها في برنامج .


ثم لنرى فائدة من فوائد الدالة الأخيرة getch إذا كنت من مستخدمي منتجات بورلاند فلابد من أنك قد مملت ان ينفذ البرنامج

و عند الإنتهاء منه تضغظ على مفتاحي Alt + F5 لترى آخر النتائج , الدالة getch تحل لك هذه المشكلة كل ما عليك هو ان

تكتب في نهاية الدالة main الجملة التالية


getch();


و جرب و سترى ان هذا يحل لك الاشكال ...



و هذا أيضاً إذا كنت تريد ان تري المستخدم شئ و ستمسح الشاشة بعدها
ماهو الحل بالتأكيد الدالة getch و بعدها قم بمسح الشاشة .
- مسوي دعاية لهالدالة كأنها متنج تلفزيوني أبغا أبيعه – .


وتستخدم هذه الدالة أيضاً في حركات كتابة أرقام السر لأنه ليس من
المفروض ان يرى المستخدم رقمة السري ولا لا ؟!؟

رابعاً:
دالة الإدخال gets :
توجد هذه الدالة ضمن ملف التوجية stdio.h , و تستخدم في إدخال عبارة حرفية -string- وتستخدم كالتالي:


gets ( str ) ; // str is type of array of char ….

التوثيق :
66.147.242.89/~alobaidl/hamzaschool/showthread.php?p..

شيماء البيلى أحمد البيلى
الفرقة الرابعة
شعبة إعداد معلم الحاسب الالى

غير معرف يقول...

لنرى المثال التالي :


#include "stdio.h"
#include "conio.h"
main ()
{
char name[20] ;
printf ("nPlease Enter Your name: ") ;
gets (name) ;
puts (name) ;
printf ("n%s",name);
getch ();
return 0 ;
}



طبعاً يوجد في البرنامج دالة جديدة علينا وهي الدالة puts وهي نفس الدالة gets ولكن puts للإخراج , وتستخدم كما في المثال .

ولكن نفذوا البرنامج السابق وبدل من الجملة


gets (name);


ضعوا :


scanf ("%s",name) ;


ثم قم بإدخال إسمك كاملاً لنقل ثلاثياً و لاحظ المخرجات !!!
ستجد أن المطبوع هو إسمك الأول فقط و ذلك بسبب أن الدالة scanf
تقراء حتى يواجهها أول فراغ فتتوقف عن القرائة !! إذا ما هو الحال ؟!
الحل هو إستخدام الدالة gets جرب و لاحظ النتائج بنفسك .
التجربة خير برهان .

وأيضاً هناك دوال مشايهه سأذكرها على عجالة وهي :


putchar ();


وهي مثل الدالة puts ولكن هذه لإخراج حرف واحد فقط فعندما نكتب :


putchar ( 'a' ) ;


يكون المخرج على الشاشة حرف a .
وعندما تكتب الفقرة التاليه في برنامج :


char ch ;
ch = getchar () ;
putchar(ch);


وهذه الدالة موجوده في ملف التوجية stdio.h .
وأختها putch ولكن موجودة في ملف التوجية conio.h ولها نفس المعاملات تماماً و تستخدم بنفس الطريقة .


التوثيق :
66.147.242.89/~alobaidl/hamzaschool/showthread.php?p..


شيماء البيلى أحمد البيلى
الفرقة الرابعة
شعبة اعداد معلم الحاسب الالى

غير معرف يقول...

http://www.mediafire.com/?4se7hyd4j9y7oky

مشاركتي من هذا الرابط

أحمد نصر الدين السيد

غير معرف يقول...

printf( );


طبعاً هذه الدالة من الدوال الأساسية جداً في لغة السي لا أعتقد أن هناك من يجهلها و هذه الدالة تأخذ متغر إلى متغيرين .


الأول يكون دائم من نوع سلسلة حرفية و المتغير الاول إجباري , أما المتغير الثاني فهو غير إجباري و يكون من نوع va_list طبعاً هو ليس من الأنواع القياسية

في لغة سي و لكنه مفيد جدا في أن الدالة تأخذ عدد غير محدد من القيم مثل ما يحصل مع الدالة printf و scanf و لكن عمل هذا النوع معقد جداً

و لن أتطرق له هنا ...المهم لو اردنا أن نطبع الجملة التالية :


Hi I am Talal


ما علينا إلا كتابة الآتي:


printf ("Hi I am Talal");


ولكن ماذا لو أردنا أن نكتبها هكذا:


Hi I am
Talal


سوف نكتبها هكذا :


printf ("Hi I am nTalal");


لاحظ هنا وجود علامة الـ n وهي تعني new line ( سطر جديد )
وهناك الكثير من العلامات التي تؤدي اغراض معينة مثل:
1. نقل المؤشر 8 مسافات و نستخدم لذلك علامة t .
2. إخراج صوت الصافرة ( بيب ) , ونستخدم العلامة a.
3. إرجاع المؤشر مسافة خلفية و نستخدم لذلك b .

ولكن ماذا لو اردت أن نطبع العلامة ؟!؟
الحل هو كتابتها كالتالي:


printf ("Hi I am Talal");


سنلاحظ أن المخرج على الشاشة هو :


Hi I am Talal


والحال ايضاً نفس الشئ مع الـ ؟ و الـ ' و الـ "
فما عليك إلا كتابتها مرتين ؟؟ و "" و ' ' .

ولنرى الان هذا البرامج على السريع :


#include "stdio.h"
main ( )
{
int a = 5, b = 10, c ;
float f = 45.5 ;
char ch = 'Y' ;
char name[10] = "Talal" ;

c = a + b ;
printf ("The int c = %d n",c) ;
printf ("The float f = %f n",f) ;
printf ("The char ch = %c n",ch) ;
printf ("The string name = %sn",name) ;
return 0 ;
}


لاحظ أن المخرجات ستكون بالشكل التالي :


The int c = 15
The float f = 45.5
The char ch = Y
The string name = Talal


لاحظ أن %d تكون توصيف لمتغير من نوع int ,
و الـ %f تكون لتوصيف متغير من نوع float ,
والـ %c تكون لتوصيف متغير من نوع char أي حرف واحد ,
والـ %s تكون لتوصيف متغير من نوع string حرف أو أكثر .

ثانياً:
دالة الادخال


scanf ( ) ;


وهي دالة لإدخال أي نوع من أنواع الـ Data Type .
وممكن نشوف هذا المثال و يكون كافي :


#include "stdio.h"
main ( )
{
int a ;
char string[20] ;
printf ("nEnter an int VALUE: ") ;
scanf ("%d",&a) ;
printf ("nEnter a string: ") ;
scanf ("%s",string) ;
printf ("The int value is:%d ,,, the string is:%sn", a, string) ;
return 0 ;
}
توثيق:
http://pramgnet.ahlamontada.com/t497-topic
تعليق:
سالى الدالى

غير معرف يقول...

ثالثاً:
دوال الإدخال


1. getchar ( ) ;
2. getche ( ) ;
3. getch ( ) ;


وهذه دوال إدخال حرف واحد و هي متشابهه في الشكل و لكن مختلفة في الأداء نوعاً ما .
الدلة الأولى : getchar توجد ضمن ملف التوجية stdio.h و تستخدم لإدخال حرف واحد ويظهر على الشاشة بعد الكتابة ولا ينتقل إلى الأمر الذي بعده إلا إذا ضغط المستخدم على مفتاح Enter .

مثال:


char ch ;
ch = getchar() ;
printf ("%c",ch) ;



الدلة الثانية : getche وتوجد ضمن ملف التوجية conio.h و تستخدم ايضاً لإدخال حرف واحد و يظر على الشاشة إلا أنها تختلف عن الدالة getchar في أنها لا تحتاج الضغط على مفتاح Enter للإنتقال للأمر التالي...
مثال:


char ch ;
ch = getche() ;
printf ("%c",ch) ;



الدالة الثالثة : getch () وتوجد ضمن ملف التوجية conio.h ومع هذه الدالة الأمر مختلف عن الدالتين السابقتين, فالدالتين
السابقتين كان الحرف يظهر على الشاشة و لكن هنا لا يظهر و لا يطلب من المستخدم الضغط على مفتاح Enter للإكمال .
مثال :


char ch ;
ch = getch();
printf("%c",ch);



طبعاً أولاً نفذ هذه الدوال الثلاث و ضعها في برنامج .


ثم لنرى فائدة من فوائد الدالة الأخيرة getch إذا كنت من مستخدمي منتجات بورلاند فلابد من أنك قد مملت ان ينفذ البرنامج

و عند الإنتهاء منه تضغظ على مفتاحي Alt + F5 لترى آخر النتائج , الدالة getch تحل لك هذه المشكلة كل ما عليك هو ان

تكتب في نهاية الدالة main الجملة التالية


getch();


و جرب و سترى ان هذا يحل لك الاشكال



و هذا أيضاً إذا كنت تريد ان تري المستخدم شئ و ستمسح الشاشة بعدها
ماهو الحل بالتأكيد الدالة getch و بعدها قم بمسح الشاشة .
- مسوي دعاية لهالدالة كأنها متنج تلفزيوني أبغا أبيعه

وتستخدم هذه الدالة أيضاً في حركات كتابة أرقام السر لأنه ليس من
المفروض ان يرى المستخدم رقمة السري ولا لا

رابعاً:
دالة الإدخال gets :
توجد هذه الدالة ضمن ملف التوجية stdio.h , و تستخدم في إدخال عبارة حرفية -string- وتستخدم كالتالي:


gets ( str ) ; // str is type of array of char ….


لنرى المثال التالي :


#include "stdio.h"
#include "conio.h"
main ()
{
char name[20] ;
printf ("nPlease Enter Your name: ") ;
gets (name) ;
puts (name) ;
printf ("n%s",name);
getch ();
return 0 ;
}



طبعاً يوجد في البرنامج دالة جديدة علينا وهي الدالة puts وهي نفس الدالة gets ولكن puts للإخراج , وتستخدم كما في المثال .

ولكن نفذوا البرنامج السابق وبدل من الجملة


gets (name);


ضعوا :


scanf ("%s",name) ;


ثم قم بإدخال إسمك كاملاً لنقل ثلاثياً و لاحظ المخرجات !!!
ستجد أن المطبوع هو إسمك الأول فقط و ذلك بسبب أن الدالة scanf
تقراء حتى يواجهها أول فراغ فتتوقف عن القرائة !! إذا ما هو الحال ؟!
الحل هو إستخدام الدالة gets جرب و لاحظ النتائج بنفسك .
التجربة خير برهان .

وأيضاً هناك دوال مشايهه سأذكرها على عجالة وهي :


putchar ();


وهي مثل الدالة puts ولكن هذه لإخراج حرف واحد فقط فعندما نكتب :


putchar ( 'a' ) ;


يكون المخرج على الشاشة حرف a .
وعندما تكتب الفقرة التاليه في برنامج :


char ch ;
ch = getchar () ;
putchar(ch);


وهذه الدالة موجوده في ملف التوجية stdio.h .
وأختها putch ولكن موجودة في ملف التوجية conio.h ولها نفس المعاملات تماماً و تستخدم بنفس الطريقة

توثيق:
http://pramgnet.ahlamontada.com/t497-topic
تعليق:
سالى الدالى

حياه اسماعيل يقول...

بعض دوال الادخال:

* دالة الإدخال العامة Scanf ( )
هى دالة الإدخال الرئيسية التى تسمح بإدخال جميع أنواع البيانات وهى تأخذ نفس المعاملات التى تأخذها الدالة Print f ( )

* الدالة getche ( ) : - ( ملف التوجيه ( conio .h
تستخدم لإدخال حرف واحد ويظهــر هذا الحرف على الشاشة ولكنها تختــلف عن الدالــة getchar ( ) فى أنها لا تحتاج إلى الضغط على مفتاح الإدخال enter للانتقال للسطر التالى وتعمل هذه الدالة بطريقة مشابهة .

* الدالة getch ( ) : ( ملف التوجيه conio.h )
تستخدم لإدخال حرف واحد ولكن تختلف عن الدالتين السابقتين فى أن هذا الحرف لا يظهر على الشاشة وكذلك فى أنها لا تحتاج إلى الضغط على مفتاح الإدخال enter للانتقال إلى السطر التالى

* دالة طباعة حرف واحد putchar ( ) : ( ملف توجيه stdio.h )
- تستخدم لطباعة حرف واحد على الشاشة
- فمثلا putchar ( ' a ') تطبع على الشاشة الحرف a كما هو

* دالة إدخال عبارة حرفية gets ( ) * ملف التوجيه stdio.h
- تستخدم الدالة gets ( ) فى إدخال عبارة حرفية string

غير معرف يقول...

دوال الادخال العامه

دالة الإدخال العامة Scanf ( ) *
هى دالة الإدخال الرئيسية التى تسمح بإدخال جميع أنواع البيانات وهى تأخذ نفس المعاملات التى تأخذها الدالة Print f ( )
مثال :
# include < stdio.h >
main ( )
{
int a , b , c ;
float r , s , t ;
char name [10];
printf ( " \n \n enter your name : " ) ;
scanf ( " % s " , name ) ;
printf ( " a = " ) ;
scanf ( " % d " , & a ) ;
printf ( “ b = " ) ;
scanf ( % d " , & b ) ;
printf ( " r = " ) ;
scanf ( " % f " , &r ) ;
printf ( " s= " ) ;
scanf ( " % f " & s ) ;
printf ( " \n welcome % s " , name ) ;
printf ( " \n \n c = a + b = % d " , a + b ) ;
printf ( " \n \n t = r + s = % d " , r + s ) ;
}
ملاحظات على الحل
· يتم الإعلان عن المتغيرات a , b , c , r , s , t , name
· تطبع الدالة printf() الرسالة enter your name
· تستقبل الدالة scan f ( ) العبارة الحرفية التى يدخلها المستخدم ونصفها فى المتغير name 0000 كذلك المتغيرات الأخرى
· تستقبل الدالة scan f ( ) فى سطر ( “ % d " , &a ) scan f ( ) قيمة صحيحه وتخزنها فى المتغيرa
....
الناتج :-
enter your name : ahmed
a = 5
b = 10
r = 20
s = 30
welcome ahmed
c = a + b = 15
t = r + s = 50
...........
- الدالة getche ( ) : - ( ملف التوجيه ( conio .h
تستخدم لإدخال حرف واحد ويظهــر ه;ذا الحرف على الشاشة ولكنها تختــلف عن الدالــة getchar ( ) فى أنها لا تحتاج إلى الضغط على مفتاح الإدخال enter للانتقال للسطر التالى وتعمل هذه الدالة بطريقة مشابهة .


مثال
char a ;
a = getche ( ) ;
printf ( “ % c “ , a ) ;
...........
– الدالة getch ( ) : ( ملف التوجيه conio.h )
تستخدم لإدخال حرف واحد ولكن تختلف عن الدالتين السابقتين فى أن هذا الحرف لا يظهر على الشاشة وكذلك فى أنها لا تحتاج إلى الضغط على مفتاح الإدخال enter للانتقال إلى السطر التالى
مثال
char a ;
a = getch ( ) ;
printf ( “ % c “ , a ) ;

توثيق:
http://www.absba.org/showthread.php?t=180163
.....
محمد جمال الدين محمود
...

غير معرف يقول...

يمكن اضافة شرح مبسط لدوال الادخال السابقة كالتالى :-
1-دالة الإدخال العامة () scanf:-
هي دالة الإدخال الرئيسية التي تسمح بإدخال جميع أنواع البيانات وهي تأخذ نفس المعاملات التي تأخذها الدالة()printf للتعامل مع البيانات والموجودة بالجدول السابق.
والصورة العامة للدالة()scanf هي:
int scanf (const char*format [,address,…]);

2-دوال إدخال حرف واحد getchar(), getche(), getch():
بالرغم من أن الدالة ()scanf تستقبل جميع أنواع البيانات إلا أن لغة C تشتمل على دوال أخرى تتعامل مع أنواع خاصة من البيانات كالحروف والعبارات الحرفية ونوضح فيما يلي أهم هذه الدوال.

•الدالةgetchar () :
ملف التوجيه stdio.h
تستخدم لإدخال حرف واحد ويظهر الحرف على الشاشة بعد الكتابة ولا تسمح بالانتقال إلى الأمر التالي إلا إذا ضغط المستخدم مفتاح الإدخال Enter.

الدالة ()getche:
ملف التوجيه conio.h
تستخدم لإدخال حرف واحد ويظهر هذا الحرف على الشاشة ولكنها تختلف عن الدالة ()getchar في أنها لا تحتاج إلى الضغط على مفتاح الإدخال Enter .

الدالة ()getch :
ملف التوجيه conio.h
تستخدم لإدخال حرف واحد ولكن تختلف عن الدالتين السابقتين في أن هذا الحرف لا يظهر على الشاشة وكذلك لا تحتاج إلى الضغط على مفتاح الإدخال Enter

ويمكن اضافة امثلة على دوال الدخال السابقة فى الجزء التالى من المدونة (جزء الأمثلة)

تعليق :-إيمان نصر - الفرقة الرابعة

غير معرف يقول...

•دوال إدخال حرف واحد getchar(), getche(), getch():
بالرغم من أن الدالة ()scanf تستقبل جميع أنواع البيانات إلا أن لغة C تشتمل على دوال أخرى تتعامل مع أنواع خاصة من البيانات كالحروف والعبارات الحرفية ونوضح فيما يلي أهم هذه الدوال.
•الدالةgetchar () :
ملف التوجيه stdio.h
تستخدم لإدخال حرف واحد ويظهر الحرف على الشاشة بعد الكتابة ولا تسمح بالانتقال إلى الأمر التالي إلا إذا ضغط المستخدم مفتاح الإدخال Enter.
مثال:

#include
void main(){
char a;
printf("Enter Char:");
a=getchar();
printf("%c",a);
}

فيكون الناتج

Enter Char:A
A

•الدالة ()getche:
ملف التوجيه conio.h
تستخدم لإدخال حرف واحد ويظهر هذا الحرف على الشاشة ولكنها تختلف عن الدالة ()getchar في أنها لا تحتاج إلى الضغط على مفتاح الإدخال Enter .
مثال:

#include
#include
void main(){
char a;
printf("Enter Char:");
a=getche();
printf("\n%c",a);
}

فيكون الناتج

Enter Char:C
C

•الدالة ()getch :
ملف التوجيه conio.h
تستخدم لإدخال حرف واحد ولكن تختلف عن الدالتين السابقتين في أن هذا الحرف لا يظهر على الشاشة وكذلك لا تحتاج إلى الضغط على مفتاح الإدخال Enter.
مثال:

#include
#include
void main(){
char a;
printf("Enter Char:");
a=getch();
printf("\n%c",a);
}

فيكون الناتج

Enter Char:
C
تعليق :-
هبة احمد السعيد امين

إرسال تعليق