انا المسلم
الرجاء تسجيل الدخول (مع تحيات منتدى انا المسلم )
انا المسلم
الرجاء تسجيل الدخول (مع تحيات منتدى انا المسلم )

انا المسلم


 
الرئيسيةالبوابةأحدث الصورالتسجيلدخول
بسم الله الرحمن الرحيم
أسرة منتدى أنا المسلم تهنئ السادة الأعضاء(مدرين -
مشرفين - أعضاء - زائرين) والأمة الإسلامة
بحلول عيد الفطر المبارك
 
 
 
منتدى أنا المسلم
دقات قلب المرء قائلة له إن العمر دقائق وثواني




https://emadghost.yoo7.com
بسم الله الرحمن الرحيم

تم يحمد الله إفتتاح قسم جديد خاص بأجهزة الريسيفر والدش والكروت والكامات

وأيضاً شفرات ART- SHoWTIME -وإيضاً الجزيرة الرياضية

وسوفت وير جميع إجهزة الريسيفر
      

 

 دوال الإدخال و الإخراج في لغة سي

اذهب الى الأسفل 
3 مشترك
كاتب الموضوعرسالة
Admin
المدير العام
المدير العام
Admin


ذكر
عدد الرسائل : 595
العمر : 42
الموقع : https://emadghost.yoo7.com
المزاج : رايق
 . : دوال الإدخال و الإخراج في لغة سي 15781610
نقاط : 311
تاريخ التسجيل : 10/05/2008

دوال الإدخال و الإخراج في لغة سي Empty
مُساهمةموضوع: دوال الإدخال و الإخراج في لغة سي   دوال الإدخال و الإخراج في لغة سي I_icon_minitimeالأربعاء أكتوبر 15, 2008 11:43 am

سم الله الرحمن الرحيم


دوال
الإدخال و الإخراج في لغة سي




في هذا الدرس سنتعرف على دوال جديدة مختلفة كثيراً عن الدرس السابق ... سنتعرف
الآن على دوال مختصة في الإدخال و الإخراج I/O:

أولاً:
دالة الإخراج :


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 ;
}


لنلقي نظرة على البرنامج بسرعة :

في الأول عرفنا متغيرين الاول من نوع 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 ( محبوبتي Very Happy
) وتوجد ضمن ملف التوجية conio.h ومع هذه الدالة الأمر مختلف عن
الدالتين السابقتين, فالدالتين
السابقتين كان الحرف يظهر على الشاشة و لكن هنا لا يظهر و لا يطلب من
المستخدم الضغط على مفتاح
Enter للإكمال .
مثال :


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



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


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


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


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


getch();


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




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



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

رابعاً:
دالة الإدخال 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 ولها نفس المعاملات
تماماً و تستخدم بنفس الطريقة .



عموما أسألوا لي التوفيق من الله تعالى .
وأسال الله لكم التوفيق و النفع بما لدي و أن أنتفع بما لديكم .
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://emadghost.yoo7.com
mohamedkenawy
المدير العام
المدير العام
mohamedkenawy


ذكر
عدد الرسائل : 164
العمر : 35
الموقع : www.hatrex-net.ba7r.org
المزاج : فايق ورايق على الاخر
الاوسمة : دوال الإدخال و الإخراج في لغة سي 1187177599
اعلام البلاد : دوال الإدخال و الإخراج في لغة سي Male_e10
 . : دوال الإدخال و الإخراج في لغة سي 15781610
نقاط : 322
تاريخ التسجيل : 23/04/2009

دوال الإدخال و الإخراج في لغة سي Empty
مُساهمةموضوع: رد: دوال الإدخال و الإخراج في لغة سي   دوال الإدخال و الإخراج في لغة سي I_icon_minitimeالجمعة يونيو 05, 2009 9:15 am

شكرا لك وانصحك بزيارت موقع كتب اكيد عارفه
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://www.hatrex-net.ba7r.org
عماد الامير
صاحب المنتدي ورئيس مجلس الادارة
صاحب المنتدي ورئيس مجلس الادارة
عماد الامير


عدد الرسائل : 366
الاوسمة : دوال الإدخال و الإخراج في لغة سي UBd41977
اعلام البلاد : دوال الإدخال و الإخراج في لغة سي Male_e10
 . : دوال الإدخال و الإخراج في لغة سي 15781610
نقاط : 229
تاريخ التسجيل : 24/05/2008

دوال الإدخال و الإخراج في لغة سي Empty
مُساهمةموضوع: رد: دوال الإدخال و الإخراج في لغة سي   دوال الإدخال و الإخراج في لغة سي I_icon_minitimeالأحد أغسطس 02, 2009 8:53 pm

موقع كويس وحملته كله
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
دوال الإدخال و الإخراج في لغة سي
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» الفصل الثالث : الإدخال و الإخراج ( I/O )

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
انا المسلم :: (`'·.¸ (`'·.¸* البـرمجـة * ¸.·'´) ¸.·'´) :: Turbo C plus plus- c-
انتقل الى: