ماذا %*s شكل محدد يعني ؟
-
05-07-2019 - |
سؤال
في بعض التعليمات البرمجية التي يجب أن أحافظ رأيت شكل محدد %*s
.أي شخص يمكن أن يقول لي ما هذا ولماذا يتم استخدامه ؟
مثال على استخدامه مثل:
fprintf(outFile, "\n%*s", indent, "");
المحلول
انها تستخدم لتحديد, بطريقة ديناميكية ، ما عرض الحقل:
- العرض غير محدد في شكل سلسلة ، ولكن إضافي قيمة عدد صحيح الحجة السابقة الحجة التي يجب أن يكون مهيأ.
حتى "المسافة البادئة" يحدد مقدار المساحة على تخصيص السلسلة الذي يلي ذلك في قائمة المعلمات.
لذلك ،
printf("%*s", 5, "");
هو نفس
printf("%5s", "");
انها طريقة جميلة لوضع بعض المساحات في الملف الخاص بك ، وتجنب حلقة.
نصائح أخرى
لا تستخدم "٪ * ليالي" في منطقة عازلة الذي لا فارغة إنهاء (معبأة) ويعتقد أنه سيتم طباعة فقط "طول" المجال.
http://www.cplusplus.com/reference/clibrary/cstdio/ printf /
<اقتباس فقرة>لا تحديد العرض في سلسلة التنسيق، ولكن كحجة قيمة عددية إضافية السابقة الحجة التي لابد من تنسيق.
اقتباس فقرة> ومنها مثلا: printf("%*s", 4, myValue);
هو equivelant إلى printf("%4s", myValue);
وو٪ 4S شكل محدد إخراج سلسلة في عرض الحقل من 4، وهذا هو، printf يعرض قيمة مع لا يقل عن 4 مواقف شخصية.
إذا القيمة إلى أن يكون الناتج هو less
من 4 مواقف شخصية واسعة، والقيمة هي right justified
في مجال افتراضيا.
إذا كانت القيمة greater
من 4 مواقف شخصية واسعة، وexpands
عرض الحقل لاستيعاب العدد المناسب من الحروف.
لترك تبرير القيمة، واستخدام عدد صحيح سالب لتحديد عرض الحقل.
والمراجع: جاوة ™ كيف لبرنامج (في وقت مبكر الكائنات)، العاشر الطبعة
و* أسباب fprintf لوحة الانتاج حتى يتم الأحرف ن نطاق واسع، حيث n هو قيمة عددية المخزنة في حجة وظيفة فقط السابقة التي يمثلها نوع تعديلها.
printf("%*d", 5, 10) //will result in "10" being printed with a width of 5.