سؤال

الذهاب thorugh overflow وظيفة الوثائق. لقد وجدت الفائض لديه يتبع كقيم الإرجاع.

قيمة الإرجاع:

قيمة مختلفة عن EOF (أو السمات :: eof () للسمات الأخرى) تشير النجاح.

إذا فشلت الوظيفة ، يتم إرجاع EOF (أو السمات :: eof () للسمات الأخرى) أو إلقاء استثناء.

مصدر :"http://www.cplusplus.com/reference/iostream/streambuf/overflow/"

هل يمكن لأي شخص أن يخبرني في أي من Sceanrios تتفوق على الوظيفة التي تمر باستثناء؟ سيكون موضع تقدير أي مساعدة

هل كانت مفيدة؟

المحلول 3

في السيناريو الخاص بي ، كان الأمر يتعلق لأنه لم يكن يقفز العنوان التالي (تم زيادة مكالمات SETP بمقدار 0) ، لذا أعد إعادة استخدام منطقة الذاكرة نفسها وكانت تعطي خطأ تجزئة.

نصائح أخرى

يعد Streambuf تجريدًا لقناة التخزين أو الاتصالات الأساسية في Stream. يمكن أن تفشل وظيفة Overflow () لأي أسباب يمكن أن تفشل التخزين أو القناة. مثل خطأ القرص لملفات القرص ، والاتصال المكسور للمآخذ وما إلى ذلك.

على الرغم من أن Wilx قام بتفصيل الفشل (EOF) الشرط ، يمكن أن تكون حالة الاستثناء واحدة من هذه: http://www.aoc.nrao.edu/php/tjuerges/alma/stl/html-3.4.6/classstd_1_1exception.html (هل يمكنك تخمين أي واحد؟ :) - ولكن يجب (من الواضح) أن يكون std::overflow_error إذا كنت تكتب دفق الإخراج الخاص بك أو شيء من هذا القبيل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top