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 الكامل بالعربي.