خانه / دوره آموزش مقدماتی C و ++C / قسمت هفتم آموزش C – تابع printf

قسمت هفتم آموزش C – تابع printf

در قسمت ششم آموزش زبان C با ساختمان کلی این زبان و تابع main آشنا شدید در این جلسه از آموزش می خواهیم با تابع printf که تابعی برای چاپ اطلاعات در خروجی است آشنا شویم . با ما همراه باشید ..

این تابع برای انتقال اطلاعات از کامپیوتر به صفحه نمایش مورد استفاده قرار می گیرد و بصورت زیر استفاده می شود :

printf("عبـارت مورد نـظر");

کاراکترهای فرمت ، کاراکترهای قالب جهت تعیین شکل خروجی و رشته های دیگری است که باید به خروجی منتقل شوند . “عبارت مورد نظر” شامل اطلاعاتی هستند که با فرمت مشخص شده درکاراکترهای فرمت، باید به خروجی منتقل شوند. کاراکترهایی که برای تعیین فرمت خروجی مورد استفاده قرار می گیرند با کاراکتر % شروع می شوند .

کاراکترفرمت | نوع اطلاعات که باید به خروجی منتقل شود

%C :  یک کاراکتر
%d : اعداد صحیح دهدهی مثبت و منفی
%i  : اعداد صحیح دهدهی مثبت و منفی
%e : نمایش علمی عدد همراه با حرف e
%E : نمایش علمی عدد همراه با حرف E
%f : عدد اعشاری ممیز شناور
%g : اعداد اعشاری ممیز شناور
%G : اعداد اعشاری ممیز شناور
%O : اعداد مبنای ۸ مثبت
%S : رشته ای از کاراکترها ( عبارت رشته ای )
%U : اعداد صحیح بدون علامت ( مثبت )
%x : اعداد مبنای ۱۶ مثبت با حروف کوچک
%X : اعداد مبنای ۱۶ مثبت با حروف بزرگ
%p : اشاره گر
%n : موجب میشود تا تعداد کاراکترهایی که تا قبل ازاین کاراکتر به خروجی منتقل شده اند شمارش شده و در پارامتر متناظر با آن قرار گیرد .
%% : علامت %

کاراکترهای کنترلی که در تابع ()printf بکار میروند در زیر آمده است . بعضی از کاراکترهای کنترلی برای انتقال خروجی به یک محل معین از صفحه نمایش مورد استفاده قرار می گیرند .

کاراکتر کنترلی | عملی که انجام می شود

f\  : موجب انتقال کنترل به صفحه جدید می شود
n\ : موجب انتقال کنترل به خط جدید می شود
t\  : انتقال به ۸ محل بعدی صفحه نمایش
“\  : چاپ دابل کوتیشن (“)
‘\  : چاپ کوتیشن (‘)
V\ : انتقال کنترل به ۸ سطر بعدی
N\ : ثابت های مبنای ۸ ( Nعدد مبنای ۸ است )
xN\ : ثابت های مبنای ۱۶ ( N عدد مبنای ۱۶ است )

چند دستور متوالی که شامل تابع ()print باشند ، خروجی خود را بر روی یک سطر منتقل می کنند . مگر این که با پارامتر کنترلی n\ کنترل را به سطر بعدی منتقل کنیم .

main()
{
printf("Hello Micropedia");
printf(" We Love Micropedia");
}

خروجی حاصل از اجرای برنامه فوق بصورت ذیل خواهد بود : Hello Micropedia We Love Micropedia . با استفاده از n\ می توانیم خروجی را در چند سطر داشته باشیم .

مثال ۲ :

main()
 {
 int num ;
 printf("the address of num is:" );
 printf(" %p", &num );
 }

در مثال فوق عبارت &num آدرس متغیر num را مشخص می کند که برای نوشتن آن از کاراکتر فرمت p% استفاده شده است . نمونه ای از خروجی مثال ۲ بصورت زیر است . the address of num is : 6A30:OFE4

اگر در تابع ()printf چند کاراکتر فرمت داشته باشیم ، هر کاراکتر با یک عنصر داده که باید به خروجی برود تطبیق داده می شود :

main()
 {
 int a=10 ;
 float b=20 ;
 printf(" a is:%d,b is :%f",a,b);
 }

خروجی حاصل از اجرای برنامه فوق بصورت ذیل است : a is:10,b is :20.000000

مثال ۳ :

main()
 {
 unsigned int num ;
 num=100 ;
 printf("the value of num is:%u",num);
 }

همانطوری که در مثال ۳ مشاهده می شود ، برای چاپ عدد num که بصورت عدد صحیح بدون علامت تعریف شد ، ازu% استفاده شده است . خروجی حاصل از اجرای برنامه مثال ۳ به صورت ذیل است : the value of num is:100

مثال ۴ :

main()
 {
 float f=12.50 ;
 int t=10 ;
 printf("\n f is:%f",f );
 printf(" tenper is:%%%d",t );
 }

خروجی حاصل از اجرای برنامه فوق بصورت زیر است :

f is:12.500000  tenper is:%10

در مثال ۴ برای چاپ علامت % از کاراکتر %% و برای چاپ متغیر f از نوع float می باشد ازf% استفاده شده است . کاراکتر فرمت n% از سایر کاراکترهای فرمت متفاوت است . این کاراکتر بجای انتقال مقادیری به خروجی ، موجب می شود تا تعداد کارکترهایی که تا قبل از این کاراکتر به خروجی منتقل شده اند ، شمارش شده و در پارامتر متناظر با آن قرار بگیرد .

تعیین طول میدان در تابع ()printf

در حین انتقال اطلاعات توسط تابع ()printf میتوانیم طول میدان خروجی را مشخص کنیم . در این مورد می توانیم محل نقطه اعشار و تعداد ارقام اعشار را نیز تعیین کنیم . تعیین طول میدان در جدول بندی ها بسیار مفید است . طول میدان ، بصورت w.d است که در اعداد اعشاری ممیز شناور ، w طول میدان و d تعداد ارقام اعشار را  مشخص می کند .

مثال ۵ :

main()
{
printf("\n %8.1f %8.1f %8.1f\n" ,3.0,12.5,523.3 );
printf("\n %8.1f %8.1f %8.1f\n" ,300.0,1200.5,5300.3 );
}

خروجی حاصل از اجرای برنامه فوق بصورت زیر است :

۵۲۳٫۳   ۱۲٫۵   ۳٫۰

۵۳۰۰٫۳  ۱۲۰۰٫۵  ۳۰۰٫۰

همانطورکه مشاهده می گردد طول میدان برابر با ۸ و تعداد ارقام اعشار، برابر با یک که در منتها الیه سمت راست میدان قرار گرفته ، منظور شده است .
اگر فرمت w.d که طول میدان را مشخص می کند در مورد رشته ها استفاده گردد ، w حداقل طول میدان و d حداکثر کاراکترهای قابل چاپ را مشخص می کند . اگر w.d در مورد اعداد صحیح بکار برده شود ، w مشخص کننده حداقل طول میدان و d تعیین کننده حداکثر طول میدان است .

درباره ی آریـان پــور

سلام . آریــان پور هستم . از نویسندگان میکروپـدیا .. علاقه مــند به برنامه نویسی و طراحی وب و شبکه ! دیدگاه ها و نظرات شما دوستان بررسی میشه و باعث دلگرمـی برای نوشتن مطالب بهتر و به روزتر . در تماس باشید با : aryanpour [at] micropedia [dot] ir با مـا همراه باشید ..

همچنین ببینید

قسمت بیست و چهارم آموزش C – عملگرهای اشاره گر

این جلسه بسیار ساده و کوتاه خواهد بود. دو عملگر در مورد اشاره گرها مورد …

۹ دیدگاه ها

  1. سلام .دربرنامه ی cچگونه دستور پرینت روبنویسیم ک داده ها درستون های جدا ازهم چاپ بشه .راهنمایی کنید ممنون

  2. “همانطورکه مشاهده می گردد طول میدان برابر با ۸ و تعداد ارقام اعشار، برابر با یک که در منتها الیه سمت راست میدان قرار گرفته ، منظور شده است .”
    منتهی الیه سمت راستو خوب اومدی:|

  3. سلام توضیحاتتون کامل میشه برنامه ای بنویسید ک ضرایب معادله درجه ۲ بگیرد و معادله را نمایش دهد
    من نمیتونم قسمت ک xب توان ۲ هست رو بیارم در برنامه و علامت ها هم در صورت +بودن ظاهر نمیشه

    • سلام کافیست سه عدد را از ورودی بخوانید البته اعداد را به صورت signed int تعریف کنید !

      برای نمایش توان هم می توانید از علامت ^ استفاده کنید ! و در معادله خود را به صورت X^2 نشان دهید ..

  4. سلا ممنون بعد از کلی گشتن تو اینترنت سایت شما تنها سایتی بود که مشکلمو حل کرد برای همین لازم دونستم تشکر کنم.

    • درود. متاسفیم که در حال حاضر به علت پاره ای از مشکلات سایت به صورت مرتب بروزرسانی نمی شود و نظرات دیر تایید یا پاسخ داده نمی شوند. با این وجود دیدگاه های شما مایه دلگرمی ما خواهد بود و ما آن ها را در اسرع وقت تایید می نماییم.

  5. با عرض سلام و خسته نباشید مثال های آموزشی شما مثل جزوه استاد دانشگاه ماست لطفا بگویید که شما از چه منبعی این مثال ها را در آموزشتون آوردید اگر بگویید ممنون میشم چون برای امتحان نیازش دارم

    • درود. احتمالا امتحان شما تاکنون برگزار شده است، با این حال ما منابع آموزش های متنی خود را در نسخه جدید وب سایت میکروپدیا منتشر خواهیم کرد، کما این که منابع اصلی برنامه نویسی پایه عموما شامل کتب دایتل و دایتل و نیز توسعه دهندگان زبان مربوط می باشد و جای تعجبی ندارد اگر مثال های استاد شما مانند مثال های آموزشی ما در میکروپدیا باشند!

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

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

پاسخ عبارت زیر را وارد کنید: *