ورودی / خروجی در زبان C
منظور از ورودی این است که برخی از داده ها را به یک برنامه انتقال دهیم. ورودی می تواند از طریق یک فایل و یا خط فرمان به برنامه انتقال داده شود. زبان برنامه نویسی C توابع پیش ساخته ای را به منظور مدیریت ورودی ارائه می کند. و منظور از خروجی این است که برخی از داده ها را روی صفحه نمایش، چاپگر و یا فایل نمایش دهیم. زبان برنامه نویسی C توابع پیش ساخته ای را به منظور مدیریت خروجی ارائه می کند.
فایل های استاندارد
زبان برنامه نویسی C با همه دستگاه ها مانند فایل رفتار می کند. بنابراین دستگاه هایی مانند صفحه نمایش عنوان فایل در نظر گرفته می شود. هنگامی که یک برنامه C اجرا می شود، به طور خودکار سه فایل زیر برای دسترسی به کیبورد و صفحه نمایش، باز می شوند:
فایل استاندارد | اشاره گر فایل | دستگاه |
Standard input | stdin | Keyboard |
Standard output | stdout | Screen |
Standard error | stderr | Your screen |
در این بخش شما نحوه گرفتن ورودی از صفحه نمایش و همچنین چاپ مقادیر بر روی صفحه نمایش را یاد خواهید گرفت.
توابع getchar() و putchar()
تابع int getchar(void) یک کاراکتر از صفحه نمایش می خواند و آن را به صورت integer باز میگرداند. هر بار که این تابع فراخوانی می شود، فقط می تواند یک کاراکتر را بخواند. اگر می خواهید بیش از یک کاراکتر را توسط این تابع بخوانید، می توانید آن را درون یک حلقه قرار دهید.
تابع int putchar(int c) یک کاراکتر می گیرد و آن را بر روی صفحه نمایش چاپ می کند و همان کاراکتر را به عنوان خروجی باز میگرداند. مانند تابع getchar این تابع هم هر بار که فراخوانی می شود، فقط می تواند یک کاراکتر را در صفحه نمایش چاپ کند. اگر می خواهید بیش از یک کاراکتر را توسط این تابع چاپ کنید، می توانید آن را درون یک حلقه قرار دهید.
به مثال زیر توجه کنید:
#include <stdio.h> int main( ) { int c; printf( "Enter a value :"); c = getchar( ); printf( "\nYou entered: "); putchar( c ); return 0; }
زمانی که کد بالا توسط کامپایلر زبان C اجرا می شود، برنامه منتظر می ماند تا کاربر متنی را وارد کند. هنگامی که کاربر کلید Enter را فشار می دهد، اجرای برنامه ادامه می یابد و تنها یک کاراکتر را خوانده و آن را به صورت زیر نمایش می دهد:
$./a.out Enter a value : this is test You entered: t
توابع gets() و puts()
تابع char *gets(char *s) یک خط از ورودی را تا زمانی که به کاراکتر خط جدید یا EOF نرسیده باشد، می خواند و آن را درون بافر s قرار می دهد.
تابع int puts(const char *s) رشته ورودی s را به همراه یک کاراکتر خط جدید بر روی صفحه نمایش چاپ می کند.
مثال زیر نحوه استفاده از این دو تابع را نشان می دهد:
#include <stdio.h> int main( ) { char str[100]; printf( "Enter a value :"); gets( str ); printf( "\nYou entered: "); puts( str ); return 0; }
زمانی که کد بالا کامپایل و اجرا می شود، برنامه منتظر می ماند تا کاربر متنی را وارد کند. هنگامی که کاربر کلید Enter را فشار دهد، اجرای برنامه ادامه می یابد و رشته خوانده شده را به صورت زیر نمایش می دهد:
$./a.out Enter a value : this is test You entered: this is test
توابع scanf() و printf()
تابع int scanf(const char *format, …) ورودی را از جریان ورودی استاندارد stdin می خواند و آن را بر اساس فرمت ارائه شده اسکن می کند.
تابع int printf(const char *format, …) خروجی را به جریان خروجی استاندارد stdout می نویسد و آن را مطابق فرمت ارائه شده، تولید می کند.
فرمتی که به عنوان پارامتر هر دو تابع مشخص شده است، می تواند یک رشته ثابت باشد (مثلا “hello world”)، اما شما می توانید از %d، %c، %f ، %s به منظور چاپ یا خواندن عدد، کاراکتر، عدد اعشاری و رشته استفاده کنید. به غیر از این چهار مورد که برای فرمت بندی استفاده می شوند، موارد دیگری نیز وجود دارند که در هنگام نیاز استفاده می شوند.
برای درک بهتر موضوع به مثال زیر توجه کنید:
#include <stdio.h> int main( ) { char str[100]; int i; printf( "Enter a value :"); scanf("%s %d", str, &i); printf( "\nYou entered: %s %d ", str, i); return 0; }
زمانی که کد بالا کامپایل و اجرا می شود، برنامه منتظر می ماند تا کاربر متنی را وارد کند. هنگامی که کاربر کلید Enter را فشار دهد، اجرای برنامه ادامه می یابد و رشته خوانده شده را به صورت زیر نمایش می دهد:
$./a.out Enter a value : seven 7 You entered: seven 7
نوشته ورودی / خروجی در زبان C – آموزش زبان C اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.