تابع getch و دیگر توابع ورودی – آموزش برنامه نویسی به زبان C – جلسه چهارم

در جلسه گذشته ( توابع ورودی و خروجی در c – آموزش برنامه نویسی به زبان C – جلسه سوم ) به برخی از توابع ورودی و خروجی در C اشاره کردیم و این جلسه میپردازیم به تابع getch و دیگر تابع های هم خانواده که بمنظور خواندن یا ورودی استفاده میشن. جلسات قبلی آموزش طولانی تر بود از این به بعد سعی میکنم تعداد جلسات رو بیشتر کنم ولی هر جلسه رو کوتاه تر در نظر بگیرم.

تابع getch :

برای خواندن یک کاراکتر از ورودی (همون صفحه کلید) بکار میره. سپس کد این کلید توسط تابع بازگردانده میشه و در متغیر قرار میگیره. موقعی که کنترل برنامه به این دستور میرسه برنامه منتظر فشرده شدن یک کلید توسط کاربر میشود و بعد از دریافت ورودی از این دستور رد میشه.(پس اگر کلیدی زده نشه تا بی نهایت روی همین کاراکتر میمونه!)

نکته1 : کاراکتر خوانده شده توسط این تابع روی صفحه، نمایش داده نمیشود.

نکته2 : اگر متغیر مورد نظر کاراکتری باشه مقدار کاراکتر به متغیر منتقل میشود و اگر عددی باشه کد اسکی کلید وارده به متغیر منتقل میشه.

نکته 3: کد ASCII  یا اسکی که مخفف American Standard Code for Information Interchange ، یک ترتیب کاراکتری بر اساس الفباي انگلیسیست.  کدهاي اسکی در کامپیوترها، وسایل ارتباطی و هر وسیله دیگری که با متن سر و کار داره براي نمایش متون استفاده میشه.( کامپیوتر حروف رو نمیفهمه ! وقتی حروف رو مینویسید کامپیوتر کد اسکی اون رو برای خودش ذخیره میکنه ، ولی برای شما معادل حرفی اون رو نشون میده.) 95 کد کاراکتر اسکی قابل چاپ هستند ( از کد 32 تا 126)

مثال:

توی مثال بالا هر کلیدی از صفحه کلید رو وارد کنید، کد اسکی اون کاراکتر رو به همراه خود کاراکتر روی صفحه چاپ میکنه.به این دقت کنید که متغیر ch رو در printf هم با c% و هم با %d نوشتیم. توی اولی خود حرف (کاراکتر) نوشته میشه اما در دومی کد اسکی کاراکتر چاپ میشه.

 

این تابع و تابع های دیگه ای که این جلسه میگیم نیازمند به هدر فایل conio.h هستند.

تابع getche :

مثل تابع getch است با این تفاوت که کاراکتر وارد شده رو روی صفحه هم نشون میده.

حرف e در انتهای تابع getche به معنی echo یا عکس المعمل است.

تابع getchar :

مثل دو تابع ( )getch و ( )getche است با این تفاوت که کاراکتر رو روی صفحه نمایش
نشون میده و پس از فشردن یک کلید(وارد کردن کاراکتر) باید کلید enter نیز زده بشه تا از این تابع ، خط برنامه عبور کنه.

 

حمیدرضا مودت

یک مهندس الکترونیک ، علاقه مند به یاد دادن و یاد گرفتن پیرامون دانش برق و الکترونیک

شما ممکن است این را هم بپسندید

2 پاسخ‌ها

  1. علیرضا گفت:

    ممنون خیلی عالی توضیح میدین ، واقعا هیچ جای گنگی باقی نمیزارید و خیلی گیرا و واضح توضیح میدین .

    • حمید گفت:

      ممنون، لطف دارین…
      فکر میکردم بخش آموزش c زیاد طرفدار نداره روند ادامشو کند کردم 😀
      یک مدت سرم شلوغه
      ولی از تیرماه این بخش هم بروز میشه 🙂

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *