•✿♥lostlove♥✿•
New member
آموزش C (بخش 6) :: تابع (Printf)
این تابع برای انتقال اطلاعات از کامپیوتر به صفحه نمایش مورد استفاده قرار می گیرد و بصورت زیر استفاده می شود :
عبارت ” ۱ شامل تعدادی کاراکترهای کنترلی ، کاراکترهای قالب جهت تعیین شکل خروجی و رشته های دیگری است که باید به خروجی منتقل شوند . ” عبارت دیگر ” شامل اطلاعاتی هستند که با فرمت مشخص شده در ” عبارت ” ۱، باید به خروجی منتقل شوند.
کاراکترهایی که برای تعیین فرمت خروجی مورد استفاده قرار می گیرند با کاراکتر % شروع می شوند ( جدول ۱ ) .
مثال ۲:


عبارت ” ۱ شامل تعدادی کاراکترهای کنترلی ، کاراکترهای قالب جهت تعیین شکل خروجی و رشته های دیگری است که باید به خروجی منتقل شوند . ” عبارت دیگر ” شامل اطلاعاتی هستند که با فرمت مشخص شده در ” عبارت ” ۱، باید به خروجی منتقل شوند.
کاراکترهایی که برای تعیین فرمت خروجی مورد استفاده قرار می گیرند با کاراکتر % شروع می شوند ( جدول ۱ ) .
نوع اطلاعات که باید به خروجی منتقل شود |کاراکتر |
%C یک کاراکتر
%d اعداد صحیح دهدهی مثبت و منفی
%i اعداد صحیح دهدهی مثبت و منفی
%e نمایش علمی عدد همراه با حرف e
%E نمایش علمی عدد همراه با حرف E
%f عدد اعشاری ممیز شناور
%g اعداد اعشاری ممیز شناور
%G اعداد اعشاری ممیز شناور
%O اعداد مبنای ۸ مثبت
%S رشته ای از کاراکترها ( عبارت رشته ای )
%U اعداد صحیح بدون علامت ( مثبت )
%x اعداد مبنای ۱۶ مثبت با حروف کوچک
%X اعداد مبنای ۱۶ مثبت با حروف بزرگ
%p pointer ( اشاره گر )
%n موجب میشود تا تعداد کاراکترهایی که تا قبل
ازاین کاراکتر به خروجی منتقل شده اند شمارش
شده و در پارامتر متناظر با آن قرار گیرد .
%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 ثابت های مبنای ۱۶|
جدول (۲) . کاراکترهای کنترلی
f موجب انتقال کنترل به صفحه جدید می شود |
n موجب انتقال کنترل به خط جدید می شود |
t انتقال به ۸ محل بعدی صفحه نمایش |
چاپ کوتیشن (”)| "
چاپ کوتیشن (’)| '
V انتقال کنترل به ۸ سطر بعدی |
N ثابت های مبنای ۸|
xN ثابت های مبنای ۱۶|
جدول (۲) . کاراکترهای کنترلی
چند دستور متوالی که شامل تابع ()print باشند ، خروجی خود را بر روی یک سطر منتقل یم کنند . مگر این که با پارامتر کنترلی n کنترل را به سطر بعدی منتقل کنیم .
مثال ۱:
مثال ۱:
Main()
{
printf(" i like %c ",'c' );
printf("%s","very much." );
}
خروجی حاصل از اجرای برنامه فوق بصورت ذیل خواهد بود
i like c very much.
با استفاده ازn می توانیم خروجی را در چند سطر داشته باشیم .
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.
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
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
the value of d is:1.00000E+07
the value of d is:1e+07
همانطور که مشاهده می شود برای چاپ اعدادی که بصورت نماد علمی باشند میتواناز کاراکترهای فرمت %e ، % Eو g% استفاده کرد .
مثال ۵:
همانطوری که در مثال ۳ مشاهده می شود ، برای چاپ عدد num که بصورت عدد صحیحبدون علامت تعریف شد ، از u%استفاده شده است .مثال ۵:
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% از سایر کاراکترهای فرمت متفاوت است . این کاراکتر بجایانتقال مقادیری به خروجی ، موجب می شود تا تعداد کارکترهایی که تا قبل از اینکاراکتر به خروجی منتقل شده اند ، شمارش شده و در پارامتر متناظر با آن قراربگیرد .