c your ماذا يعني محدد تنسيق٪*s؟




your site page title must be only in letters and numbers (4)

في بعض الأكواد التي يجب علي صيانتها ، رأيت محدد تنسيق %*s . هل يمكن لأحد أن يقول لي ما هذا ولماذا يتم استخدامه؟

مثال على استخدامه مثل:

fprintf(outFile, "\n%*s", indent, "");

لا تستخدم "٪ * s" على مخزن مؤقت لا ينتهك (معبأة) NULL ظنًا أنه سيطبع فقط حقل "الطول".


يقوم محدد التنسيق٪ 4s بإخراج سلسلة في عرض حقل 4 — أي ، printf يعرض القيمة مع 4 مواضع أحرف على الأقل.

إذا كانت القيمة المطلوب إخراجها less من 4 مواضع أحرف ، فإن القيمة يتم right justified في الحقل بشكل افتراضي.

إذا كانت القيمة greater من 4 مواضع أحرف ، فسيتم expands عرض الحقل لاستيعاب العدد المناسب من الأحرف.

لتبرير القيمة ، استخدم عددًا صحيحًا سالبًا لتحديد عرض الحقل.

المراجع: Java ™ How to Programme (الكائنات المبكرة) ، الإصدار العاشر


يستخدم لتحديد عرض الحقل بطريقة ديناميكية :

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

لذلك تحدد "المسافة البادئة" مقدار المساحة المخصصة للسلسلة التي تتبعها في قائمة المعلمات.

وبالتالي،

printf("%*s", 5, "");

بالضبط مثل

printf("%5s", "");

إنها طريقة لطيفة لوضع بعض المسافات في الملف الخاص بك ، وتجنب حلقة.


http://www.cplusplus.com/reference/clibrary/cstdio/printf/

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

على سبيل المثال: printf("%*s", 4, myValue); يساوي printf("%4s", myValue); .







format-specifiers