English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
وظائف مكتبة C int sprintf(char *str, const char *format, ...) إرسال إخراج تنسيقي إلى str النص الذي يشير إليه.
إليكم بيان sprintf() 函数.
int sprintf(char *str, const char *format, ...)
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). |
إذا كانت النتيجة ناجحة، فإنها تعود عدد الحروف المكتوبة الإجمالي، ليس يتضمن الحرف المفقود المضاف في نهاية السلسلة. إذا كانت الفشل، فإنها تعود عدد سالب.
النموذج التطبيقي أدناه يوضح استخدام وظيفة 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