سؤال

في بعض التعليمات البرمجية التي يجب أن أحافظ رأيت شكل محدد %*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.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top