الحفاظ على موقف صحيح باستخدام seekg في ifstreams
سؤال
وأنا أحاول أن أجعل إعراب ملف أكثر قوة. باستخدام ifstream، كيف يمكنني ضمان seekg
يبقي لي في موقف صالح داخل الملف؟
وهذا لا العمل:
while(m_File.good() && m_File.peek() != EOF)
{ ...a seekg operation moves file position past end of file... }
وأفترض وقد دفعت مكرر الحالي الطريقة الماضي مكرر نهاية، وبالتالي فإن نظرة خاطفة () صحيح أبدا.
المحلول
لا، لا توجد وسيلة للقيام بذلك، قصيرة من العثور على إزاحة نهاية الملف والتأكد من أنك لا نسعى إلى أبعد من ذلك، والذي يسبب سلوك غير معرف - يمكنك بالطبع زيادة حجم الملف عن طريق الكتابة.
نصائح أخرى
واذا كان خطأ عند التوصل إلى موقف سيء (على سبيل المثال لا ينبغي أن يحدث) قد محاولة تعيين في تيار قناع استثناء ، وقبض الخارج استثناء المناسب للفي حين حلقة. في هذه الحالة انها تريد ان تكون "أنظف" حل.
لا تنتمي إلى StackOverflow