English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل تعليمي أساسي بلغة C

تحكم العملية في لغة C

وظائف لغة C

مجموعات في لغة C

مؤشرات في لغة C

الصفوف في لغة C

هيكل لغة C

ملفات لغة C

مكتبة C أخرى

دليل مرجع لغة C

استخدام وظيفة printf() في مكتبة C وأمثلة

مكتبة C - <stdio.h>

وظائف مكتبة C int printf(const char *format, ...) إرسال مخرجات التنسيق إلى الخروج القياسي stdout.

تنسيق وظيفة printf() هو:

printf("<نص تنسيقي>", <جدول المعاملات>);

إعلان

هذا هو إعلان وظيفة printf().

int printf(const char *format, ...)

المعامل

  • format -- هذا هو النص، يحتوي على النص الذي سيتم كتابته إلى الخروج إلى معياري الخروج stdout. يمكن أن يحتوي على علامات format المدمجة، يمكن استبدال هذه العلامات بالقيم المحددة في المعاملات الإضافية المحددة، وسيتم تنسيقها حسب الحاجة. خصائص علامة format هي %[flags][عرض][.دقة][طول]specifier،يتم شرحه كما يلي:

حرف التنسيق معنى
d إخراج عدد عشري سالب باستخدام شكل العشرية (لا يتم إخراج إشارة السلبية للأرقام الإيجابية).
o إخراج عدد عشري غير سالب باستخدام شكل الثمانية (لا يتم إخراج بدلاً من prefix 0).
x,X إخراج عدد عشري غير سالب باستخدام شكل السدس (لا يتم إخراج بدلاً من prefix Ox).
u إخراج عدد عشري غير سالب باستخدام شكل العشرية.
f إخراج عدد عشري أو ثنائي بدقة واحدة أو ثنائية بدقة واحدة باستخدام شكل العشرية.
e,E إخراج عدد عشري أو ثنائي بدقة واحدة أو ثنائية بدقة واحدة باستخدام شكل الأسية.
g,G إخراج عدد عشري أو ثنائي بدقة واحدة أو ثنائية بدقة واحدة باستخدام عرض النص الأصغر بين %f أو %e.
c إخراج حرف واحد
s إخراج النص
p إخراج عنوان الذاكرة
lu عدد غير سالب أربعة عشري الأصابع
llu عدد غير سالب ثمانيي الأصابع

flags (علامات)الوصف
-التنسيق على يسار عرض الحقل المحدد، بشكل افتراضي يكون التنسيق على اليمين (انظر شرح عرض sub specifier).
+إلزام عرض إشارة إضافية أو ناقصية (+ أو -) قبل النتيجة، أي سيتم عرض إشارة (+) أمام الأرقام الإيجابية. بشكل افتراضي، سيتم عرض إشارة (-) فقط أمام الأرقام السلبية.
مسافةإذا لم يتم كتابة أي رمز، سيتم إدراج مسافة أمام القيمة.
#عند استخدامه مع ملاحق o، x أو X، سيتم عرض 0، 0x أو 0X أمام القيم غير الصفرية.
عند استخدامه مع e، E، و f، سيتم إلزام إخراج نقطة عشرية، حتى لو لم يكن هناك أي أرقام بعد النقطة العشرية. بشكل افتراضي، لن يتم عرض نقطة عشرية إذا لم يكن هناك أي أرقام بعد النقطة العشرية.
عند استخدامه مع g أو G، سيكون النتيجة نفسها مثل استخدام e أو E، ولكن لن يتم إزالة الأصفار في نهاية النتيجة.
0ضع صفر (0) على يسار الرقم المحدد للملء padding بدلاً من المسافات (انظر شرح عرض sub specifier).

عرضالوصف
(رقم)أقل عدد من الحروف التي سيتم إخراجها. إذا كان القيمة المخرجة أقل من هذا الرقم، سيتم تعبئة النتيجة بمسافات. إذا كان الطول أكبر من هذا الرقم، لن يتم قطع النتيجة.
*عرض لم يتم تحديده في 字符串 format، ولكن سيتم وضع قيمته كمعامل كامل إضافي قبل المعاملات التي سيتم تنسيقها.

.وضوح (وضوح)الوصف
.numberللمؤشرات العددية (d،i،o،u،x،X): يحدد الوضع عدد الأرقام الأدنى التي سيتم كتابتها للعدد.إذا كان القيمة أقصر من هذا الرقم،سيتم تعبئة النتيجة بمقدمة من الأصفار.إذا كان القيمة أطول من هذا الرقم،فالنتيجة لن يتم قطعها.الوضوح 0 يعني عدم كتابة أي حرف.
للمؤشرات e،E و f: عدد الأرقام العشرية التي سيتم إخراجها بعد نقطة العشرية.
للمؤشرات g و G: عدد الأرقام الإ效力 القصوى التي سيتم إخراجها.
للنوع s: عدد الأحرف القصوى التي سيتم إخراجها.بالتأكيد،سيتم إخراج جميع الأحرف حتى يتم الوصول إلى حرف النهاية المكون من حرف فارغ.
للنوع c: لا يؤثر على أي شيء.
عند عدم تحديد الوضع بدقة،سيكون القيمة الافتراضية 1.إذا لم يتم تحديدها مع قيمة صريحة،سيتم افتراضها كـ 0.
.*الوضوح لم يتم تحديده في سلسلة format،ولكن سيتم وضع قيمة كاملة كمعلمة إضافية قبل المعلمة التي سيتم تنسيقها.

الطول (الطول)الوصف
hتُفسر المعلمة على أنها قصيرة أو قصيرة غير معينة (يُستخدم فقط للمؤشرات العددية: i،d،o،u،x و X).
lتُفسر المعلمة على أنها طويلة أو طويلة غير معينة،وتبدو في المؤشرات العددية (i،d،o،u،x و X) والمؤشر c (يعبر عن حرف عريض) و s (يعبر عن سلسلة من الحروف العريضة).
Lتُفسر المعلمة على أنها طويلة الثمانية (يُستخدم فقط للمؤشرات العددية: e،E،f،g و G).
  • المعلمات الإضافية -- قد تحتاج وظيفة إلى سلسلة format متعددة الأحرف مع مجموعة من المعلمات الإضافية،كل معلمة تحتوي على قيمة سيتم إدخالها،وسيتم استبدال كل % في format بمعلمة.يجب أن يكون عدد المعلمات متساوياً مع عدد العلامات %.

القيمة المرجعة

إذا كانت النتيجة ناجحة،فسيتم إرجاع عدد الحروف المكتوبة،أو سيتم إرجاع عدد سالب.

مثال على الإنترنت

يظهر هذا المثال كيفية استخدام وظيفة printf().

#include <stdio.h>
int main ()
{
   int ch;
   for( ch = 75 ; ch <= 100; ch++ ) {
      printf("قيمة ASCII = %d،حرف = %c\n", ch , ch );
   }
   return(0);
}

لن نكتب ونشغل البرنامج أعلاه،وسيتم إنتاج النتيجة التالية:

قيمة ASCII = 75،حرف = K
قيمة ASCII = 76،حرف = L
قيمة ASCII = 77،حرف = M
قيمة ASCII = 78،حرف = N
قيمة ASCII = 79،حرف = O
قيمة ASCII = 80،حرف = P
قيمة ASCII = 81،حرف = Q
قيمة ASCII = 82، الحرف = R
قيمة ASCII = 83، الحرف = S
قيمة ASCII = 84، الحرف = T
قيمة ASCII = 85، الحرف = U
قيمة ASCII = 86، الحرف = V
قيمة ASCII = 87، الحرف = W
قيمة ASCII = 88، الحرف = X
قيمة ASCII = 89، الحرف = Y
قيمة ASCII = 90، الحرف = Z
قيمة ASCII = 91، الحرف = [
قيمة ASCII = 92، الحرف = \
قيمة ASCII = 93، الحرف = ]
قيمة ASCII = 94، الحرف = ^
قيمة ASCII = 95، الحرف = _
قيمة ASCII = 96، الحرف = `
قيمة ASCII = 97، الحرف = a
قيمة ASCII = 98، الحرف = b
قيمة ASCII = 99، الحرف = c
قيمة ASCII = 100، الحرف = d

في هذا المثال، يتم عرض بيانات صيغة مختلفة:

#include <stdio.h>
int main()
{
   char ch = 'A';
   char str[20] = "ar.oldtoolbag.com";
   float flt = 10.234;
   int no = 150;
   double dbl = 20.123456;
   printf("الحرف %c \n", ch);
   printf("السلسلة %s \n" , str);
   printf("رقم عشري浮نيتي %f \n", flt);
   printf("عدد صحيح %d\n" , no);
   printf("قيمة دقة عالية %lf \n", dbl);
   printf("قيمة ثمانية %o \n", no);
   printf("قيمة سدسية %x \n", no);
   return 0;
}

نتيجة التنفيذ هي:

الحرف A 
السلسلة ar.oldtoolbag.com 
رقم عشري浮نيتي 10.234000 
عدد صحيح 150
قيمة دقة عالية 20.123456 
قيمة ثمانية 226 
قيمة سدسية 96 

العلامة

  • %d
  • 㩵n عدد صحيح عشري غير سالب
  • %f رقم عشري浮نيتي
  • %s السلسلة
  • %c حرف واحد
  • %p قيمة الاشارة
  • %e رقم عشري浮نيتي
  • %x, %X عدد غير سالب مكتوب بالعشرية
  • %o عدد غير سالب مكتوب بالأسطواني
  • %g أخرج القيمة المناسبة بناءً على نوع %e أو %f حيث يكون طول الناتج أقصر
  • %p مؤشر الناتج
  • %lu عدد غير سالب أربعة عشري الأصابع
  • %llu عدد غير سالب ثمانيي الأصابع

مكتبة C - <stdio.h>