|
بنام خدا
سلام , همانطور كه گفته بودم در اين جلسه اولين برنامه خود را در
زبان C خواهيم نوشت.
دستورات استاندارد ورودي و خروجي، كه در واقع
به صورت تابع در كامپايلر C تعريف شده اند در فايلهايي كه پسوند آنها h است، هستند
و ما براي استفاده از آنها بايد آنها را در بالاي برنامه ذكر كنيم. براي اين كار
از دستور #include<FILE name> استفاده مي كنيم. فايلهايي كه معمولا در
ابتداي هر برنامه بايد آنها را ذكر كنيم عبارتند از:
conio.h
stdio.h
stdlib.h
البته اين فايلها ممكن است در تمام برنامه ها
احتياج نباشند ولي فعلا براي اين كه كارمان پيش برود نام فايلهاراذكر كنيد(ضرري
نداره). پس در ابتداي هر برنامه سه دستور زير را حتما تايپ كنيد بعدا در بخش نوشتن
هدر فايل(header file) مفصلا در مورد اين نوع فايلها بحث خواهيم كرد .
#include<CONIO.H>
#include<STDIO.H>
#include<STDLIB.H>
براي اين كه بدانيد تابعي را كه به كار مي بريد در
كدام هدر فايل است مكان نما را زير آن تابع برده و كليد Ctrl+F1 را فشار دهيد. اين
كار را بايد در محيط اديتور كامپايلر C انجام دهيد. ميتوان دستورات ورودي و خروجي
را به دو نوع تقسيم كرد:
الف)كاراكتري.
ب)با فرمت مشخص.
الف)
دستورات ورودي و خروجي كاراكتري:
-
دستور ()putch: شكل كلي اين دستور به صورت زير ميباشد و
براي نشان دادن يك كاراكتر در صفحه نمايش به كار ميرود. putch(نام متغير كاراكتري
يا خود كاراكتر); بايد توجه كرد كه اگر مستقيما كاراكتر را بخواهيم بنويسيم بايد
آن را در داخل كاما(‘ ‘)قرار دهيم. ولي براي متغير رشته اي اين كار نياز نيست.
putch(‘a’);
putch(chvar);
دستور اول a را در صفحه نمايش چاپ ميكند. و دستور دوم مقداري را كه در متغير
كاراكتري chvar قرار دارد چاپ مي كند. اين متغير به صورت ; char chvar تعريف
شده است. يك دستور ديگر به نام ()putchar وجود دارد كه در نسخه هاي قديمي تر
C به كار ميرفت. ولي امروزه با اين كه باز هم وجود دارد ولي به كار نميرود. شما
اگر دوست داشتيد از اين دستور استفاده كنيد. عملكردش مانند ()putch ميباشد.
-
دستو () getch : از اين دستور براي گرفتن يك كاراكتر از
صفحه كليد استفاده مي كنند. شكل كلي دستور بصورت زير است:
نام متغير كاراكتري=getch();
اگر اين دستور را بدون استفاده از متغير به كار بريم برنامه منتظر فشار دادن كليدي
از طرف كاربر مي ماند. كاراكتري كه توسط اين دستور دريافت ميشود در صفحه نمايش
نشان داده نميشود.
-
دستور () getche:
اين دستور مانند ()getch ميباشد با اين تفاوت كه دستور ()getche كاراكتر گرفته شده
را در صفحه نيز نشان ميدهد .
-
دستور ()getchar: اين دستور نيز براي گرفتن كاراكتر از كاربر
است. و شكل كلي اين دستور نيز دقيقا مانند دو دستور قبل ميباشد. با اين تفاوت كه
اين دستور پس از گرفتن كاراكتر منتظر كليد Enter مي ماند در حالي كه دو دستور قبل
اينطور نبودند. براي مثال ميخواهيم برنامه اي را بنويسيم كه سه كاراكتر را از
كاربر گرفته و آنها را بصورت معكوس نشان دهد:
#include<CONIO.H>
#include<STDIO.H>
#include<STDLIB.H>
void main()
{
char ch1,ch2,ch3;
clrscr();
getche();
getche();
getchar();
putch(ch3);
putch(ch2);
putch(ch1);
getch();
}
اگر ورودي اين برنامه را بصورت abc وارد كنيم برنامه cba را به عنوان خروجي
برميگرداند.
ب)دستورات ورودي و
خروجي با فرمت مشخص:
-
دستور ()printf : شكل كلي دستور بصورت زير است:
printf(“پيغام و كاراكترهاي كنترلي”) ;
printf(“پيغام و كاراكترهاي كنترلي و كارامترهاي فرمت”,نام
متغيرها يا مقادير داده ها);
فرم اول دستور بيشتر براي چاپ پيغام به كار ميرود. براي مثال
دستور زير پيغام Hello world! را نشان ميدهد.
printf(“Hello world!”);
فرم دوم اين دستور مواقعي به كار مي رود كه ميخواهيم مقادير متغيرها را نيز
همراه پيغام چاپ كنيم. منظور از كاراكترهاي كنترلي و كاراكترهاي فرمت را در جدول
زير نشان داده ام. توجه كنيد كه اين كاراكترها را بايد در داخل كوتيشن به كار
بريد.
|
كاراكتر
فرمت printf()
|
مفهوم
|
|
%c
|
Character
|
|
%d
|
Decimal
|
|
%f
|
Float
|
|
%ld
|
Long
decimal
|
|
%u
|
Unsigned
|
|
%s
|
String
|
|
%p
|
Pointer
|
|
%%
|
كاراكتر%
|
|
|
كاراكتر
كنترلي printf()
|
مفهوم
|
|
\n
|
New
line
|
|
\r
|
Carriage-return
|
|
\t
|
Tab
|
|
\b
|
Back
space
|
|
\”
|
نمايش
كاراكتر “
|
|
\’
|
نمايش
كاراكتر’
|
|
\\
|
نمايش
كاراكتر
\
|
|
كاراكترهاي فرمت را موقعي به كار ميبريم كه
ميخواهيم يك متغير از نوع خاصي را در خروجي نشان دهيم. بري اين كار ابتدا نوع
كاراكتر را در داخل كوتيشن با استفاده از كاراكترهاي فرمت مشخص ميكنيم و سپس بيرون
از كوتيشن نام متغير را ذكر ميكنيم. به مثال زير توجه كنيد:
printf(“your average is:%f”, ave);
اين دستور ابتدا پيغام your average is: را نشان ميدهد و سپس به يك كاراكتر
فرمت كه يك متغير از نوع اعشاري را بيان ميكند برخورد ميكند و در خارج از كوتيشن
متغير متناظر با %f را ميابد كه در اين مثال متغير ave مي باشد. ave بصورت float
ave; تعريف شده است. اگر يك دستور printf() ديگر بعد از اين دستور قرار دهيم پيغام
بلافاصله بعد از آن چاپ خواهد شد اگر بخواهيم پيغام در سر خط بعد ظاهر شود از
كاراكتر كنترلي \n استفاده ميكنيم. براي اين كار مي توانيم به دو روش عمل كنيم يا
در آخر دستور قبل كاراكتر كنترلي را قرار دهيم يعني دستور بالا بصورت زير باشد:
printf(“your average is:%f \n”, ave);
يا اينكه n\ را در ابتداي دستور بعد قرار دهيم. دستور ()scanf رو جلسه بعد
ميگم. لطفا نظرات خودتون رو به من بگيد.
m_mohsen92@yahoo.com
|