2012-06-18 13 views
42

सी ++ में ifstream के मामले में, failbit और badbit झंडे सेट किए गए हैं?सी ++ ifstream failbit और badbit

+5

http://cplusplus.com/reference/iostream/ios/fail/ – BoBTFish

+4

@ जेक क्या आपने प्रलेखन पढ़ा था? –

उत्तर

49

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()", अंत में। लेख वास्तव में पढ़ने के लायक है।

+12

मेरे लेख का उल्लेख करने के लिए धन्यवाद :-)। –

+0

@ जनवरी-PhilipGehrcke मैं ऊपर दिए गए लिंक नहीं खोल सकता। – Orient

+0

हां, दुर्भाग्य से। कृपया इसके बजाय Google कैश का उपयोग करें। – gahcep