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

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

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

الوظائف في لغة C

المساحات في لغة C

المراجع في لغة C

الروابط في لغة C

مبنى C

ملف C

مكتبة C أخرى

دليل مكتبة C

استخدام وظيفة sprintf() في مكتبة C ومراجعة الأمثلة

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

وظائف مكتبة C int sprintf(char *str, const char *format, ...) إرسال إخراج تنسيقي إلى str النص الذي يشير إليه.

بيان

إليكم بيان sprintf() 函数.

int sprintf(char *str, const char *format, ...)

المعدلات

  • str -- هذا هو مؤشر إلى مصفوفة من الرموز، التي تحتوي على نص C.
  • format -- هذا هو النص، ويتم كتابته في النص str. يمكن أن يحتوي على علامات تنسيق مدمجة، التي يمكن استبدالها بالقيم المحددة لاحقاً وفقًا للتنسيق المطلوب. %[flags][width][.precision][length]specifier،وسيتم شرح ذلك بالتفصيل كما يلي:
specifier (التمييز)إدراج
cالرمز
d أو iعدد عشري معتمد
eالنظام العشري العلمي (العدد والمعامل) باستخدام الرمز e
Eالنظام العشري العلمي (العدد والمعامل)
fعدد عشري عادي
gسيتم اختيار التمثيل المناسب بين %e و %f.
Gسيتم اختيار التمثيل المناسب بين %E و %f.
oعشري معتمد
sتمثيل النص للرمز
uعدد عشري غير معتمد
xعدد عشري غير معتمد
Xعدد عشري غير معتمد (أحرف كبيرة)
pعنوان العنصر
nلا يتم إدراج أي شيء
%الرمز

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

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

.precision (الوضوح)الوصف
.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.

القيمة المعدة

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

مثال على الخط

النموذج التطبيقي أدناه يوضح استخدام وظيفة sprintf()

#include <stdio.h>
#include <math.h>
int main()
{'}}
   char str[80];
   sprintf(str, "قيمة Pi = %f", M_PI);
   puts(str);
   return(0);
}

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

قيمة Pi = 3.141593

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