پروقراملار، آلیش (input) و بوراخیش (output) ایشی اوچون تانینیرلار.
معمولا بوراخیشلار، گؤرونتو صفحهسی و ترمینال پنجرهسی تکین ایستاندارد بوراخیش قورغویا گؤندریلیر و آلیش دا معمولا ایستاندارد حسابلانان آلیش قورغوسو (device) کیبورد'دان آلینیرلار.
بو فصلده آلیش و بوراخیش (Input & Output) اوچون تمل (اساسی) مفهوملاری آچیقلایاجاییق.
بو مفهوملار، تک-کاراکترلی آلیش میقدارلاری اوخوماق و بوراخیش اوچون گؤندرمگه شامیل اولورلار.
C دیلینین لاپ چوخ تانینان کاراکترسل آلیش و بوراخیش فانکشنلری، getchar() و putchar() ساییلیرلار. getchar() ایستاندارد آلیشدان کاراکتر استخراج ائدیر و putchar() ایسه ایستاندارد بوراخیشا کاراکتر گؤندریر. بونلارین ایکیسی ده چالیشمالاری اوچون، stdio.h باشلیق فایلا (header file) احتیاجلاری وار. داها آرتیق، بو ایکیسی کاراکترسل فانکشنلر اولسالار دا، اینتیجر (integer) میقدارلار ایله چالیشارلار. بلی، دوٚزدور. عجیب گؤرونسه ده دوغرودور.
گلهجکده بو فانکشنلر ایله char موتغیرلری بیرلیکده ایشلتمیش اولا بیلهجکسینیز و ائله بیر ایش گؤردویونوز واقت، کامپایلر چوخ مودبانه سیزی بو ایشتباه اوچون اویاراجاق. بیراز قاریشیق گؤرونسه ده، C پروقراملاما دیلی بئلهدیر و ائله بوجور موضوعلار اوچون چوخلاری اونونلا راحات اولا بیلمیرلر. آنجاق داریخمایین، موضوع چوخ راحاتدیر و آیدینجا بونو باشا دوشهجکسینیز.
نهایتده بو فانکشنلر، آخیم یؤنتملی (stream oriented) ده ساییلیرلار و بونو دا گلنکی فصلده صؤحبت ائدهجهییک. یاخشی، ایندی آشاغیداکی کودا بیر باخین:
#include <stdio.h>
int main ()
{
int c;
printf ("Type a letter: ");
c = getchar();
printf ("You typed '%c'.\n",c);
printf ("The character code is %d.\n",c);
return (0);
}
۴-جو سطرده c موتغیری اینتیجر توتوروق.
۶-جی سطرده ایسه getchar() فانکشنی ایله c موتغیر اوچون بیر میقدار آلیریق.
۷-جی و ۸-جی سطرلرده c موتغیری چاپ ائدیریک، آنجاق بیر نوکته وار.
۷-جی سطرده اولان placeholder اوچون %c یازمیشیق، یعنی کاراکترسل و ۸-جی سطرده ایسه %d.
بونا گؤره ده ۷-جی سطردهکی printf، صفحهده کاراکتر چاپ ائدیر، مثلا a.
۸-جی سطرده کاراکتره عاید اولان شوماره چاپ اولور، مثلا بورادا a حرفی اوچون شوماره، 97 اولور.
ایندی putchar() فانکشنی ایستیفاده ائدیریک.
#include <stdio.h>
int main ()
{
int c;
printf ("Type a letter: ");
c = getchar();
printf ("You typed '");
putchar(c);
printf ("'.\n");
return (0);
}
گؤردویونوز تکین اینپوتدا یازدیغینیز تک-کاراکتر (ایلک کاراکتر) عیناً چاپ اولور. موستقیم putchar() فانکشنینده یازماق اوچون تک-کوت قوللانمالیسینیز. تک-کوت کاراکتر اوچون ایشلنیر و دوبل-کوت ایسه ایسترینگ اوچون. ائله قاچیش کاراکترلری ده ایکی تک-کوت آراسینا یازا بیلریک. ایشلر قاباقکی تکیندیر، آنجاق نئچه putchar() فانکشنی ایله ایستهدیگیمیز متنی چاپ ائتدیک.
آشاغیداکی میثالی نظرده آلین:
#include <stdio.h>
int main ()
{
int c;
printf ("Type a letter: ");
c = getchar();
printf ("You typed '");
putchar(c);
putchar ('\'');
putchar ('.');
putchar ('\n');
return (0);
}
اوٚستدهکی اؤرنکده ۱ ساییدا آلیش (Input) فانکشنی ایله ۳ ساییدا بوراخیش (Output) ایستیفاده ائتدیک.
#include <stdio.h>
int main ()
{
int a,b;
printf ("Type two letters: ");
a = getchar();
b = getchar();
printf ("You typed '");
putchar(a);
printf ("' and '");
putchar (b);
printf ("'.\n");
return (0);
}
بوراخیش ایسه بئله بیر زاد اولاجاق: (AYSAN یازین و Enter وورون!)
You typed 'A' and 'Y'.
ایندی یئنیدن ایجرا ائدین و بو یول، نئچه حرفی آلیش اوچون جاوابدا یازین. مثلا akin یازین.
نتیجه یالنیز a و k حرفلری بوراخاجاق. بو فانکشنلرده ترتیب ایله باشدان دیبه کاراکترلر اوخونوب و ذخیره اولونور، بونا گؤره ده اتوماتیک حالتده ۳-جو و ۴-جو کاراکترلری آلمیر.
Type a letter: akin
You typed 'a' and 'k'.
ایندی یالنیز ۱ کاراکتر وئرین، مثلا z کاراکتری وئرین و ENTER دوگمهیی وورون.
Type a letter: z
You typed 'z' and '
'.
گؤردویونوز تکین بیر سطری آتلاییب. عیلّتی ده b کاراکتری اوچون اؤنجهدن «یئنی سطر» میقدارینین ذخیره اولماسیدیر. یعنی Enter کاراکتری.
بو دا ائله قاباقجا دئدیگیمیز تکین، آخیم یؤنتملی اؤزللیکدیر.
سونرا بونو داها کامل توضیح وئرهجهییک.
بو کودو نظرده آلین:
#include <stdio.h>
int main ()
{
int a,b,c;
printf ("Type three letters: ");
a = getchar();
putchar(a);
b = getchar();
putchar (b);
c = getchar();
putchar(c);
return (0);
}
یاخشی، کامپایل و ایجرا ائدین و سونرا ۳ ساییدا کاراکتری، آلیش اوچون وؤرین.
پروقرام نه یازدیغینیزی قایتاراجاق.
داها آرتیق، اینپوتدا نه یازسانیز، بافرده ذخیره اولاجاق و دولونا قدر یوخسا بوشالاناجان کاراکتر آلماغا داوام ائدهجک. بورادا، پروقرامدان چیخاناجان بیزیم بافر بوشالمایاجاق.
بونا گؤره ده آلیش/بوراخیش فانکشنه آخیم-یؤنتملی دئییریک. ایطیلاعات بو فانکشنلرده آخیر و جریانی وار. البته بونا گؤره گلنکی فصللرده داها چوخ صؤحبت ائدهجهییک.
Type three letters: ABC
ABC
یئنیدن ایجرا ائدین. بو یول ۳ کاراکتری (بورادا مثلا A و B و C کاراکترلری) بیر-بیر وئرین. یعنی اؤنجه A و ENTER و سونرا B و ENTER و سونرا C و ENTER دوگمهیی وورون. نتیجه گؤزلهدیگینیز تکین اولمویا بیلر! یعنی بئله بیر بوراخیشی گؤرهجکسینیز:
Type three letters: A
A
B
B
سیزجه نهدن بئله اولوب؟ ظاهرا یالنیز a و b موتغیرلر اوچون میقدار قبول ائدیب!
داها دوغروسو، ۳ موتغیرین هامیسینا دا کاراکتر قبول ائدیب.
اوندا نهدن ۳ یول آلیش آلماق اوچون چالیشماییب؟
! ! !
چوخ آیدیندیر، ایلک موتغیری وئردیگینیز واقت، A یازیب و ENTER وورموشسونوز! ائلهدییرمی؟!
بئلهلیکله a موتغیری اوچون A کاراکتری ثبت اولوبدور و b موتغیری اوچون ده ENTER کاراکتری!
بلی، دوٚزدور. A کاراکتردن سونرا دا سطر دگیشیلیبدیر و بو یعنی b موتغیری ENTER میقداری توتوب.
سونرا وئردیگینیز B کاراکتری ایسه، c موتغیری اوچون آلینیبدیر.
موحتشم!
ایندی putchar() و getchar() فانکشنلری اولدوقجا دوزگون باشا دوشموشسونوز.