( تعداد نمایش : 2103 )

تابع ()scanf – آموزش زبان سی قسمت هشتم

تابع ()scanf

این تابع برای خواندن اطلاعات از ورودی استاندارد ( صفحه کلید ) بکار رفته و
بصورت زیر استفاده می شود : ;
(آدرس متغیرها ، ” کاراکترهای فرمت “) scanf
کاراکترهای فرمت ، نوع اطلاعاتی که باید خوانده شوند را مشخص می کند. و آدرس
متغیرها، مشخص کننده محل هایی از حافظه هستند که اطلاعات ورودی باید درآن محلها
قرار گیرند. همانطور که قبلا” دیده ایم آدرس متغیرها را با عملگر & مشخص میکنیم .
در تابع scanf همانند تابع printf از تعدادی کاراکترهای فرمت استفاده می شود .
( جدول ۱ ) .
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
| کاراکتر اطلاعاتی که خوانده می شوند |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
%c | % یک کاراکتر | |
%d | % یک عدد صحیح دهدهی | |
%i | % یک عدد صحیح دهدهی | |
%e | % عدد اعشاری ممیز شناور | |
%f | % عدد اعشاری ممیز شناور | |
%g | % عدد اعشاری ممیز شناور | |
%o | % عدد مبنای ۸ | |
%x | % عدد مبنای ۱۶ | |
%p | % یک اشاره گر | |
%n | % مشخص کننده تعداد کاراکترهایی است که تا | %%n |
| ورودی خوانده شده اند | |
%u | % عدد صحیح مثبت | |
%s | % رشته ها |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ
جدول (۱) . کاراکترهای فرمت در تابع ()scanf

مثال ۱: main)(
{
char ch ;
printf(“\n enter a character :”);
scanf(“%c”/&ch );
printf(“\n ch=%c”.ch );
}

اجرای فرمان فوق ، ضمن صدور یک پیام ، کاراکتری را از ورودی خوانده در متغیر ch
قرار می دهد . نمونه ای از خروجی را در زیر مشاهده می کنیم : enter a character : s
ch=s

مثال ۲: main)(
{
int year ;
printf(“enter your age in year:”);
scanf(“%d”/&year );
printf(“\n your age is”);
printf(” %d day.”/year*365);
}

نمونه ای از خروجی را در زیر مشاهده می کنیم : enter your age in year:19
your age 6935 day.

این برنامه ، سن شما را از ورودی دریافت کرده و آن را به روز تبدیل میکند و
سپس به خروجی می برد . لازم به ذکر است که در مثال ۲ تابع ()scanf بر روی خطی
عمل می کند که تابع ()printf اولی عمل کرده است . تابع ()printf دومی به علت
وجود \n ، بر روی خط بعدی از صفحه نمایش عمل خواهد کرد . استفاده از سایر
کاراکترهای قالب در تابع ()scanf همانند تابع ()printf است که ذکر مثال درمورد
آنها ضروری به نظر نمی رسد .
قالب دیگری که باید در مورد آن توضیح داده شود %n است که مشابه آن را در
تابع ()printf داشته ایم . %n در تابع ()scanf تعداد کاراکترهای خوانده شده توسط
این تابع تا %n را به متغیری که آدرس آن متناظر با %n ذکر شده است منتقل میکند.
برای خواندن چند متغیر از ورودی توسط تابع ()scanf ، اسامی متغیرها را که
به همراه & ( عملگر آدرس ) ذکر می شوند با کاما از یکدیگر جدا کرده و در حین
ورود اطلاعات می توانیم آنها را با فاصله (blank) ، کلید enter و یا tab جدا
کنیم .

مثال ۳: main)(
{
int a/b/c ;
float ave ;
printf(“\n enter three number :”);
scanf(“%d %d %d”/&a/&b/&c );
ave=(a+b+c)/3 ;
printf(“\n average is:%f”/ave );
}

به نتیجه اجرای برنامه و چگونگی ورود سه عدد ۲۰ ، ۱۹ و ۱۸ بعنوان اطلاعات
ووردی توجه کنید : enter three number :20 19 18
av

دیدگاه خود را بیان کنید.

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