ورودی / خروجی در زبان C – آموزش زبان C

c input output 4155 ورودی / خروجی در زبان C   آموزش زبان C

ورودی / خروجی در زبان 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

 

توجه! داشته باشید که اگر برای %d که برای عدد صحیح استفاده می شود، یک رشته وارد کنید، ممکن است باعث بروز خطا شود.

نکته! تابع scanf() هنگامی که با کاراکتر فضای خالی مواجه می شود، خواندن از ورودی را خاتمه می دهد. برای نمونه this is test برای تابع scanf() سه رشته مجزا است و اگر با استفاده از این تابع بخواهید همچین رشته ای را بخوانید، این تابع فقط this را خواهد خواند.

نوشته ورودی / خروجی در زبان C – آموزش زبان C اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

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