تنسيق الإخراج باستخدام iomanip
تحكّم في العرض والدقة والمحاذاة وأنظمة العد باستخدام الترويسة iomanip.
تنسيق الإخراج باستخدام iomanip درس مجاني في C++ Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C++ Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C++ Academy 4 دروس في المجموع.
ترويسة iomanip
توفر الترويسة <iomanip> مُنسِّقات — وهي كائنات خاصة تُرسل إلى cout لتغيير حالة تنسيقه.
std::setw: عرض الحقل
تحدد std::setw(n) الحد الأدنى لعرض الحقل التالي فقط. وتُضاف مسافات حشو إلى القيم الأقصر.
#include <iomanip>
std::cout << std::setw(10) << "Name" << std::setw(5) << "Age\n";
std::cout << std::setw(10) << "Ada" << std::setw(5) << 36 << "\n";std::setfill: محرف الحشو
يستخدم setw المسافات للحشو افتراضيًا. غيّر محرف الحشو باستخدام setfill — ويظل هذا الإعداد فعالًا.
std::cout << std::setfill('0') << std::setw(4) << 42;
// 0042std::left وstd::right
حاذِ النص داخل حقل setw. والمحاذاة الافتراضية هي إلى اليمين.
std::cout << std::left << std::setw(10) << "Ada" << "|\n";
std::cout << std::right << std::setw(10) << "Ada" << "|\n";std::setprecision
تحكم في عدد الأرقام المهمة أو، عند استخدام std::fixed، في عدد المنازل العشرية.
double pi = 3.14159265;
std::cout << std::setprecision(4) << pi << "\n"; // 3.142
std::cout << std::fixed << std::setprecision(2) << pi; // 3.14Fixed وScientific وHexfloat
بدّل بين تنسيقات الأعداد باستخدام std::fixed وstd::scientific وstd::hexfloat.
double x = 12345.6789;
std::cout << std::scientific << x << "\n"; // 1.234568e+04
std::cout << std::fixed << x << "\n"; // 12345.678900أنظمة الأعداد الصحيحة: hex وoct وdec
اطبع الأعداد الصحيحة باستخدام أنظمة عددية مختلفة. يضيف std::showbase البادئة، مثل 0x أو 0.
int n = 255;
std::cout << std::hex << n << "\n"; // ff
std::cout << std::oct << n << "\n"; // 377
std::cout << std::dec << n << "\n"; // 255 (default)std::boolalpha
اطبع القيم المنطقية على شكل كلمات بدلًا من 1/0.
std::cout << std::boolalpha << true << "\n"; // true
std::cout << std::noboolalpha << true << "\n"; // 1المُنسِّقات تظل فعالة
تظل معظم المُنسِّقات فعالةً حتى تغييرها. أما setw فهو استثناء — إذ ينطبق على الحقل التالي فقط.
std::quoted للسلاسل الآمنة
يُحيط std::quoted من <iomanip> السلسلة بعلامتي اقتباس مزدوجتين، ويهَرِّب علامات الاقتباس المضمّنة. وهو مثالي لأسطر السجل.
std::string name = "Ada \"Countess\"";
std::cout << std::quoted(name);
// "Ada \"Countess\""C++20 std::format
يستبدل C++20 معظم استخدامات iomanip باستخدام std::format — وهي واجهة برمجية بأسلوب printf وآمنة من ناحية الأنواع.
#include <format>
std::cout << std::format("{:>10} | {:.2f}\n", "pi", 3.14159);تحقق سريع
أي مُنسِّق يجب تطبيقه مجددًا لكل حقل إخراج؟
مراجعة
توفر <iomanip> مُنسِّقات للعرض والدقة والمحاذاة والأساس والاقتباس. يعمل setw لكل حقل، بينما تظل جميع الإعدادات الأخرى فعالة. في C++20، يُفضّل استخدام std::format لتنسيق أوضح.
الأسئلة الشائعة
هل درس «تنسيق الإخراج باستخدام iomanip» مجاني؟
نعم — نص درس «تنسيق الإخراج باستخدام iomanip» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C++ Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C++ Academy 4 دروس في المجموع.
ماذا ستتعلم في «تنسيق الإخراج باستخدام iomanip»؟
تحكّم في العرض والدقة والمحاذاة وأنظمة العد باستخدام الترويسة iomanip. تتمرن على C++ Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C++ Academy؟
لا تُشترط خبرة سابقة. C++ Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «تنسيق الإخراج باستخدام iomanip»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C++ Academy هذا؟
نعم. كل درس في C++ Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- استخدام std::cin وstd::cout بطريقة صحيحة
- تنسيق الإخراج باستخدام iomanip
- قراءة الإدخال بأمان باستخدام getline
- التعامل مع std::cerr وstd::clog