این تابع برای انتقال اطلاعات از کامپیوتر به صفحه نمایش مورد استفاده قرار می گیرد و بصورت زیر استفاده می شود : عبارت ” ۱ شامل تعدادی کاراکترهای کنترلی ، کاراکترهای قالب جهت تعیین شکل خروجی و رشته های دیگری است که باید به خروجی منتقل شوند . ” عبارت دیگر ” شامل اطلاعاتی هستند که با فرمت مشخص شده در ” عبارت ” ۱، باید به خروجی منتقل شوند. کاراکترهایی که برای تعیین فرمت خروجی مورد استفاده قرار می گیرند با کاراکتر % شروع می شوند ( جدول ۱ ) . نوع اطلاعات که باید به خروجی منتقل شود |کاراکتر | %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%استفاده شده است .