सी ++ में ifstream
के मामले में, failbit
और badbit
झंडे सेट किए गए हैं?सी ++ ifstream failbit और badbit
उत्तर
cplusplus.com के अनुसार:
failbit आम तौर पर एक इनपुट आपरेशन द्वारा निर्धारित है जब त्रुटि आपरेशन के ही आंतरिक तर्क से संबंधित था, इसलिए धारा पर अन्य कार्यों के लिए संभव हो सकता है। जबकि badbit आम तौर पर सेट किया जाता है जब त्रुटि धारा है, जो भले ही एक अलग आपरेशन धारा पर किया जाता है जारी रहती है की संभावना है की अखंडता के नुकसान शामिल है। सदस्य फ़ंक्शन को बुरी कॉल करके बैडबिट को स्वतंत्र रूप से चेक किया जा सकता है।
सरल शब्दों में, जब एक पत्र पुनः प्राप्त करने की उम्मीद करता है, तो आप एक संख्या मिलता है, यह failbit
है। एक गंभीर त्रुटि होता है, जिस पर सभी स्ट्रीम से पढ़ने की क्षमता बाधित - यह एक badbit
है।
उल्लेख झंडे को छोड़कर वहाँ एक तिहाई काफी समान है - eofbit
। आप राज्य की जांच कई कार्य का उपयोग कर सकते हैं: ios::fail
, ios::good
और ios::bad
और तुम भी MSDN संसाधन पर iostream library से परिचित हो सकते हैं।
अंत में, यदि आप सही कैसे सभी त्रुटि बिट्स और अपवादों को संभालने के लिए फ़ाइल से पढ़ने (या कुछ फ़ाइल या निर्देशिका एक्सेस करने वाले), जबकि के समाधान के लिए खोज, मैं अत्यधिक सुझाव है कि आप एक बहुत ही व्यापक और अच्छी तरह से पढ़ जिनमें से आप कुछ Ideal solutions मिलेगा -written लेख "Reading files in C++ using ifstream: dealing correctly with badbit, failbit, eofbit, and perror()", अंत में। लेख वास्तव में पढ़ने के लायक है।
http://cplusplus.com/reference/iostream/ios/fail/ – BoBTFish
@ जेक क्या आपने प्रलेखन पढ़ा था? –