اذهب إلى المحتوى
  • 0

الفرق بين endl و n\ في c++

Ali Ali38

السؤال

Recommended Posts

  • 1

لا فرق من الناحية الظاهرية كما تحدثت حيث أن كلاهما يقوم بطباعة سطر جديد.

و لكن الفرق في طريقة العمل، لفهم ذلك علينا في البداية فهم كيفية الطباعة في ال c++.

في البداية يتم تخزين ما ينبغي طباعته في مخزن مؤقت buffer و من ثم القيام بنقل البيانات إلى الجهاز المطلوب (الشاشة أو ملف على القرص الخ..) و خلال ذلك يتم القيام بعملية flush لل buffer لإفراغه.

ال endl تقوم بذلك في كل مرة أي أن كل استدعاء لعملية ال endl سيقوم بنقل البيانات و القيام ب flush.

بينما n\ تقوم فقط بالتخزين بال buffer بدون أي نقل و فقط عند نهاية البرنامج (أو عند القيام ب flush بشكل يدوي) فإن البيانات تنقل و تتم عملية flush لل buffer.

و بالتالي ستكون n\ أسرع بكثير من endl و لا ينصح باستعمال endl لتلك الأسباب.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

هذا صحيح فكل كلامك لا يوجد فيه اي نقيد، الا ان n\ ليس سريعة على  endL , فاذا اردنا طباعة ألف سطر فسيقوم n\ بطباعته في ان واحد وهذا بطبع سيخلق مشاكل في طباعة ، وليس من المنطقي طباعة الف سطر في ثانية واحدة .

وبالتالي مخترع هذه الغة ليس غبي لكي يخترع مصطلحين لكتابة سطر جديد ، ولهذا يوجد قاعدة في هذه الحالة تسمى التوازن:

والطريقة هي نستعمل n\ ثلاثين سطرا ونستعمل مرة واحدة endl وهكذا حتى ننتهي .

وبهذا ستكون الطبعة مضبوطة مئة بالمئة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...