ما هو snprintf () في C ++

Ma Hw Snprintf Fy C



C ++ هي لغة البرمجة الشائعة الاستخدام والتي تقدم العديد من المزايا للمبرمجين. يتضمن العديد من الوظائف المدمجة التي يمكن استخدامها للعديد من الأغراض. من بين تلك الوظائف ، هناك وظيفة تسمى snprint () ، التي بالكاد يعرفها الناس.

في هذه المقالة ، سنشرح بناء الجملة والمعلمات وقيم الإرجاع وعمل snprintf () تعمل في C ++. يمكن للمرء أن يجد فهماً كاملاً لـ snprintf () في هذا الدليل.

ما هو snprintf () في C ++

في C ++ ، snprintf () هي وظيفة تستخدم لتنسيق أو تخزين سلسلة من قيم الأحرف والسلسلة المكتوبة في المخزن المؤقت. إنه يعمل بشكل مشابه لـ سبرينتف () وظيفة ولكن لديها القدرة على التغلب على الفيضانات العازلة. ال يتضمن ملف الرأس ملف snprint () وظيفة ويجب الإعلان عنها إذا كنت تريد استخدام الوظيفة في برنامجك. ال snprintf () تحدد الوظيفة الحد الأقصى للمحتوى الذي يمكن أن يشتمل عليه المخزن المؤقت.







المعطى أدناه هو بناء الجملة الذي يجب استخدامه snprintf () تعمل في C ++:



snprintf ( شار * متعادل، size_t buf_size ، مقدار ثابت شار * شكل، ... ) ؛

بمجرد كتابة الأحرف ، يتم إدخال حرف نهاية فارغ. إذا كانت قيمة MAX_BUFSIZE تساوي صفرًا ، فلن يتم تخزين أي شيء وقد يعمل المخزن المؤقت كمؤشر فارغ.



معلمات snprintf ()

فيما يلي المعلمات المستخدمة في snprintf () وظيفة.





  • متعادل : مؤشر إلى المخزن المؤقت للسلسلة حيث سيتم كتابة الإخراج.
  • buf_size : MAX_BUFSIZE-1 هو الحد الأقصى لعدد الأحرف التي يمكن للمرء كتابتها في المخزن المؤقت.
  • شكل : تمت كتابة سلسلة منتهية بقيمة خالية إلى تدفق ملف كمؤشر. يتكون من أحرف ومحددات تنسيق محتملة تبدأ بـ٪. قيم المتغيرات التي تتبع سلسلة التنسيق تحل محل محددات التنسيق.
  • (حجج إضافية) : اعتمادًا على نوع سلسلة التنسيق ، قد تتوقع الوظيفة قائمة من الوسائط الإضافية ، تحتوي جميعها على قيمة تُستخدم لاستبدال محدد التنسيق في تنسيق السلسلة (أو بالنسبة لـ MAX_BUFSIZE ، مؤشر إلى موقع التخزين) .

يجب أن يكون هناك حد أدنى من مثل هذه المعلمات مثل قيم محدد التنسيق. تتجاهل الوظيفة أي وسيطة إضافية.

ماذا يعود snprintf ()

إذا نجحت الوظيفة ، فإنها تُرجع عدد الأحرف التي يمكن اعتبارها مكتوبة لمخزن مؤقت كبير بشكل مناسب ، باستثناء حرف فارغ منتهي. عندما يفشل ، فإنه ينتج عنه قيمة سالبة. سيتم اعتبار الإخراج مكتوبًا بالكامل إذا وفقط إذا كانت القيمة التي تم إرجاعها غير سالبة وكانت أصغر من MAX_BUFSIZE.



كيفية استخدام snprintf () في C ++

فيما يلي مثال على استخدام snprintf () في C ++:

مثال

# تضمين
# تضمين
استخدام مساحة الاسم الأمراض المنقولة جنسيا ؛
int رئيسي ( )
{
شار برتقالي الحجم [ 60 ] ؛
int return_Value ، MAX_BUFSIZE = 60 ؛
شار شارع [ ] = 'لينكس' ؛
int مقالات = أربعة خمسة ؛
قيمة الإرجاع = snprintf ( حجم_فرنسية ، MAX_BUFSIZE ، 'مرحبًا٪ s مستخدمين ، دعنا نقرأ٪ d مقالة حول bash' ، شارع ، مقالات ) ؛
لو ( قيمة الإرجاع > 0 && قيمة الإرجاع < MAX_BUFSIZE )
{
كوت << برتقالي الحجم << endl ؛
كوت << 'عدد الأحرف المكتوبة =' << قيمة الإرجاع << endl ؛
}
آخر
كوت << 'خطأ في الكتابة إلى المخزن المؤقت' << endl ؛
يعود 0 ؛
}

في الكود أعلاه ، قمنا بتعيين الحد الأقصى لحجم المخزن المؤقت على 60. وهذا يعني أن الرمز لن يقبل أكثر من 60 حرفًا. لقد استخدمنا snprintf () وظيفة لإخراج سلسلة تتكون من 56 حرفًا وسيتم عرضها في طرف الإخراج. في حالة ما إذا كان عدد الأحرف التي أدخلتها أكثر من 60 حرفًا ، فسوف يمر البرنامج بخطأ.

خاتمة

لقد أظهرنا النموذج الأولي والمعلمات وقيم الإرجاع وعمل C ++ snprintf () وظيفة تكتب سلسلة منسقة إلى مخزن مؤقت لسلسلة الأحرف. وصفنا مثالاً بفهم كامل لـ snprintf () في هذا الدليل.