تخطَّ إلى المحتوى

std::print / std::println

std::print: طباعة منسّقة مباشرة std::print / std::println

std::print وstd::println من <print> يطبعان نصًا منسّقًا مباشرة لمخرج قياسي، بنفس قوّة صياغة std::format لكن بلا حاجة لبناء std::string وسيطة.

std::format (C++20) ينتج std::string منسّق، لكن غالبًا الهدف طباعته مباشرة عبر std::cout — خطوة وسيطة غير ضرورية. std::print وstd::println من <print> يجمعان بين وضوح std::format وسرعة الطباعة المباشرة: يقبلان نص تنسيق ومعاملات متغيّرة العدد، ويكتبان الناتج مباشرة (println يضيف سطرًا جديدًا تلقائيًا، print لا يضيف).

الصياغة

std::print("{} - {}", value1, value2);
std::println("{} - {}", value1, value2); // مع سطر جديد

📄 مثال

#include <print>
#include <string>

int main() {
    int age = 28;
    std::string name = "سارة";
    std::println("الاسم: {}, العمر: {}", name, age);
}

أهم النقاط

العنصرالوظيفة
print(fmt, args...)يطبع النص المنسّق مباشرة بلا سطر جديد إضافي
println(fmt, args...)مثل print لكن يضيف سطرًا جديدًا تلقائيًا بالنهاية
صياغة التنسيقنفس صياغة {} المستخدمة بـ std::format من C++20

💡 نصائح عملية

  • فضّله على std::cout مع std::format لتفادي بناء std::string وسيطة غير ضرورية
  • تحقّق من دعم مترجمك لـ <print> تحديدًا — الدعم لا يزال غير مكتمل بكل المترجمات مقارنة بمزايا C++23 الأخرى

⚠️ أخطاء شائعة

  • افتراض دعم <print> كامل بكل مترجم يدعم C++23 عمومًا — دعمه متفاوت أكثر من مزايا اللغة الأساسية
  • نسيان أن print (بعكس println) لا يضيف سطرًا جديدًا تلقائيًا

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار CPP الكامل بالعربي.