• توجه: در صورتی که از کاربران قدیمی ایران انجمن هستید و امکان ورود به سایت را ندارید، میتوانید با آیدی altin_admin@ در تلگرام تماس حاصل نمایید.

آموزش C (بخش 6) :: تابع (Printf)

آموزش C (بخش 6) :: تابع (Printf)
404.jpg

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




404-1.gif

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




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


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


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



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



جدول (۲) . کاراکترهای کنترلی​

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

مثال ۱:
Main()​
{​
printf(" i like %c ",'c' );​
printf("%s","very much." );​
}​

خروجی حاصل از اجرای برنامه فوق بصورت ذیل خواهد بود
i like c very much.
با استفاده ازn می توانیم خروجی را در چند سطر داشته باشیم .​
Main()​
{​
printf(”this is second program.n” );​
printf(”output is in two line.” );​
}​
خروجی حاصل از اجرای برنامه فوق بصورت ذیل است​
this is second program.
output is in two line.​


مثال ۲:​
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);​
}​
the value of num is:100​
مثال ۴:​

Main()​
{​
double d ;​
d=le+007 ;​
printf(”the value of d is:%en”/d);​
printf(”the value of d is:%En”/d);​
printf(”the value of d is:%gn”/d);​
}​
خروجی حاصل از اجرای برنامه مثال ۴ بصورت ذیل خواهد بود​
the value of d is:1.00000e+07
the value of d is:1.00000E+07
the value of d is:1e+07​
همانطور که مشاهده می شود برای چاپ اعدادی که بصورت نماد علمی باشند میتواناز کاراکترهای فرمت %e ، % Eو g% استفاده کرد .

مثال ۵:

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% از سایر کاراکترهای فرمت متفاوت است . این کاراکتر بجایانتقال مقادیری به خروجی ، موجب می شود تا تعداد کارکترهایی که تا قبل از اینکاراکتر به خروجی منتقل شده اند ، شمارش شده و در پارامتر متناظر با آن قراربگیرد .

همانطوری که در مثال ۳ مشاهده می شود ، برای چاپ عدد num که بصورت عدد صحیحبدون علامت تعریف شد ، از u%استفاده شده است .
 
بالا