1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

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

شروع موضوع توسط MiTra ‏14/12/10 در انجمن C #C++

  1. پیشکسوت انجمن کاربر ارزشمند❤

    تاریخ عضویت:
    ‏11/11/10
    ارسال ها:
    11,734
    تشکر شده:
    3,539
    امتیاز دستاورد:
    113
    [​IMG]​
    این تابع برای انتقال اطلاعات از کامپیوتر به صفحه نمایش مورد استفاده قرار می گیرد و بصورت زیر استفاده می شود :


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



    نوع اطلاعات که باید به خروجی منتقل شود |کاراکتر | ​
    %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%استفاده شده است .