الحفاظ على موقف صحيح باستخدام seekg في ifstreams

StackOverflow https://stackoverflow.com/questions/1937176

  •  20-09-2019
  •  | 
  •  

سؤال

وأنا أحاول أن أجعل إعراب ملف أكثر قوة. باستخدام ifstream، كيف يمكنني ضمان seekg يبقي لي في موقف صالح داخل الملف؟

وهذا لا العمل:

while(m_File.good() && m_File.peek() != EOF)
{ ...a seekg operation moves file position past end of file... }

وأفترض وقد دفعت مكرر الحالي الطريقة الماضي مكرر نهاية، وبالتالي فإن نظرة خاطفة () صحيح أبدا.

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

المحلول

لا، لا توجد وسيلة للقيام بذلك، قصيرة من العثور على إزاحة نهاية الملف والتأكد من أنك لا نسعى إلى أبعد من ذلك، والذي يسبب سلوك غير معرف - يمكنك بالطبع زيادة حجم الملف عن طريق الكتابة.

نصائح أخرى

واذا كان خطأ عند التوصل إلى موقف سيء (على سبيل المثال لا ينبغي أن يحدث) قد محاولة تعيين في تيار قناع استثناء ، وقبض الخارج استثناء المناسب للفي حين حلقة. في هذه الحالة انها تريد ان تكون "أنظف" حل.

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