اگر با ما همراه بوده باشید در جلسه ی قبل توانستیم با تابع printf اطلاعات را در خروجی درج کنیم و حال میخواهیم در این جلسه اطلاعات و داده ها را از ورودی دریافت کنیم .
همچنین برای راحتی دوستانی که این آموزش ها رو دنبال میکنند کتابخانه های مورد نیاز برای اجرای کد ها و مثال به اول هر قطعه کد اضافه شد تا به راحتی با کپی کردن آنها در کامپایلر مورد نظر آنها را اجرا کنید . همچنین از تابع getch برای توقف صفحه ای که خروجی را در آن مشاهده میکنید قرار داده شده که تا لحظه ای که کلیدی فشار داده شود صبر میکند .این تابع برای خواندن اطلاعات از ورودی استاندارد ( صفحه کلید ) بکار رفته و بصورت زیر استفاده می شود.
scanf(آدرس متغیرها , "کاراکترهای فرمت");
کاراکترهای فرمت ، نوع اطلاعاتی که باید خوانده شوند را مشخص می کند. و آدرس متغیرها، مشخص کننده محل هایی از حافظه هستند که اطلاعات ورودی باید درآن محلها قرار گیرند. همانطور که قبلا دیده ایم آدرس متغیرها را با عملگر & مشخص میکنیم . در تابع scanf همانند تابع printf از تعدادی کاراکترهای فرمت استفاده می شود .
کاراکترفرمت | نوع اطلاعات که باید به خروجی منتقل شود
%C : یک کاراکتر
%d : اعداد صحیح دهدهی مثبت و منفی
%i : اعداد صحیح دهدهی مثبت و منفی
%e : نمایش علمی عدد همراه با حرف e
%E : نمایش علمی عدد همراه با حرف E
%f : عدد اعشاری ممیز شناور
%g : اعداد اعشاری ممیز شناور
%G : اعداد اعشاری ممیز شناور
%O : اعداد مبنای ۸ مثبت
%S : رشته ای از کاراکترها ( عبارت رشته ای )
%U : اعداد صحیح بدون علامت ( مثبت )
%x : اعداد مبنای ۱۶ مثبت با حروف کوچک
%X : اعداد مبنای ۱۶ مثبت با حروف بزرگ
%p : اشاره گر
%n : موجب میشود تا تعداد کاراکترهایی که تا قبل ازاین کاراکتر به خروجی منتقل شده اند شمارش شده و در پارامتر متناظر با آن قرار گیرد .
%% : علامت %
مثال ۱ :
#include <stdio.h> #include <conio.h> void main() { char ch ; printf("\n enter a character :"); scanf("%c", &ch ); printf("\n ch=%c", ch ); getch(); }
اجرای فرمان فوق ، ضمن صدور یک پیام ، کاراکتری را از ورودی خوانده در متغیر ch قرار می دهد . نمونه ای از خروجی را در زیر مشاهده می کنیم :
enter a character : s
ch=s
مثال ۲ :
#include <stdio.h> #include <conio.h> void main() { int year ; printf("enter your age in year:"); scanf("%d" , &year ); printf("\n your age is"); printf(" %d day." , year*365); getch(); }
نمونه ای از خروجی را در زیر مشاهده می کنیم :
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 جدا کنیم .
به عنوان تمرین برنامه ای بنویسید که ۳ عدد را از ورودی دریافت کرده و میانگین آنها را محاسبه کرده و در خروجی چاپ کند .
سلام خسته نباشید
تفاوت scanf و printf چیه؟
من هر کاری می کنم scanf بیشتر از یک ورودی نمی خونه!😖
چیکار کنم؟
آقا دمتون گرم بخاطر این سایت و دم آقای آریان پور هم گرم بخاطر این مطالبی که انقدر خوب و حرفه ای و در عین حال به زبان ساده توضیح میدن
دلم نیومد ازتون تشکر نکنم چون واقعا بدردم خورد 😉
سلام ببخشید من مجموعه دستورات برنامه نویسی سی پلاس پلاس یا سی شارپ رو میخوام ک اجراشونم داشته باشه شما نمیتونین راهماییم کنین سایتی ک داشته باشه یا خودتون ندارید خیلی ممنون میشم اگ جوابمو بدید
درود. منظور شما از مجموعه دستورات چیست؟
جهت اجرای بر خط دستورات زبان C-sharp به نشانی http://www.tutorialspoint.com/compile_csharp_online.php مراجعه نمایید.
ali bod
tnx
عالی بود خیلی متشکر-این طور مطالبی کمتر با این شکل بیان خوب پیدا میشه
نظر لطفتون ِ ..
خوشحالم که به کارتون اومده ..
بقیه آموزش ها رو هم دنبال کنید .