दिलचस्प पोस्ट
एसक्यूएलईटी 3 संहिता के साथ इकाई फ़्रेमवर्क 6 पहले – तालिकाओं का निर्माण नहीं करेगा JavaFX की संस्करण संख्या कैसे प्राप्त करें? मैं किसी वेबएएसएसम्बंक्शन फ़ंक्शन से जावास्क्रिप्ट स्ट्रिंग कैसे वापस कर सकता हूं कैसे WPF विकास शुरू करने के लिए? ट्यूपल्स की सूची को 2 आइटम से पूर्ण करें (पूर्णांक मान) बहुभुज टच पहचान Google मानचित्र एपीआई V2 कर्नेल मॉड्यूल से अपवाद वेक्टर तालिका का भौतिक पता ढूंढें पैनल में एक जटिल छवि जोड़ें, इसके चारों ओर एक अनुकूलित उपयोगकर्ता इंटरफ़ेस में बटन जावा पूर्णांक अंडरफ्लो और अतिप्रवाह को कैसे संभालता है और आप इसके लिए कैसे जांचेंगे? पायथन डेमन और सिस्टमडी सेवा मैं क्यों नहीं कर सकता <img src = "C: /localfile.jpg">? MySQL में शामिल होने के साथ हटाएं <h: form> <ui: repeat> के भीतर पूरी तरह से काम नहीं करते, केवल अंतिम <h: form> संसाधित किया जाता है आईओएस स्थिति पट्टी को कैसे छिपाएंगे I क्या फाइल में लाइनों को संशोधित करना संभव है?

Std :: cin से बाइनरी डेटा पढ़ें

Std :: cin से बाइनरी (गैर-फॉर्मेटेड) डेटा को स्ट्रिंग या स्ट्रिंग स्ट्रीम में पढ़ने का सबसे आसान तरीका क्या है?

Solutions Collecting From Web of "Std :: cin से बाइनरी डेटा पढ़ें"

std::cin cos ios_binary के साथ नहीं खोला है यदि आप cin का उपयोग करना चाहिए, तो आपको इसे फिर से खोलना होगा, जो कि मानक का हिस्सा नहीं है।

यहां कुछ विचार: http://compgroups.net/comp.unix.programmer/How-can-I-reopen-std-cin-and-std-cout-in-binary-mode

बाइनरी होने के बाद, आप बाइट्स पढ़ने के लिए cin.read() का उपयोग कर सकते हैं। यदि आप जानते हैं कि आपके सिस्टम में, पाठ और बाइनरी (और आपको पोर्टेबल होने की आवश्यकता नहीं है) में कोई अंतर नहीं है, तो आप चिंता किए बिना पढ़ सकते हैं।

खिड़कियों के लिए, आप cin.read() के साथ संयोजन के रूप में _setmode फ़ंक्शन का उपयोग कर सकते हैं, जैसा कि पहले से उल्लेख किया गया है

 _setmode(_fileno(stdin), _O_BINARY); cin.read(...); 

यहां समाधान स्रोत देखें: http://talmai-oliveira.blogspot.com/2011/06/reading-binary-files-from-cin.html

cin.read एक निश्चित संख्या बाइट्स cin.read करेगा, बिना किसी तर्क के प्रकार के delimiters के लिए खोज कि @ जेसन ने उल्लेख किया

हालांकि, सीआरएलएफ -> एनएल जैसे स्ट्रीम पर भी सक्रिय अनुवाद हो सकता है, इसलिए यह अभी भी द्विआधारी डेटा के लिए आदर्श नहीं है।

यूनिक्स / पॉसिक्स सिस्टम पर, आप बाइट-बाय-बाइट पढ़ने के लिए cin.get() विधि का उपयोग कर सकते हैं और डेटा को एक कंटेनर में std::vector<unsigned int> cin.read() सकते हैं, या आप cin.read() उपयोग कर सकते हैं cin.read() एक बफर में निर्धारित बाइट्स की एक निश्चित राशि को पढ़ने के लिए। आप किसी भी एंड-डेटा-स्ट्रीम संकेतक की जांच के लिए cin.peek() का उपयोग भी कर सकते हैं।

इस प्रकार के ऑपरेशन के लिए operator>> ओवरलोड का उपयोग करने से बचने के लिए ध्यान रखें … operator>> का उपयोग करते समय टूटने का कारण बनता है, जब भी एक सीमांकक चरित्र मनाया जाता है, और यह धारा से ही सीमांकण चरित्र को निकाल देगा इसमें किसी भी बाइनरी मान शामिल होंगे जो कि अंतरिक्ष, टैब, आदि के बराबर हैं। इस प्रकार बाइनरी डेटा आपके द्वारा std::cin उस पद्धति का उपयोग करते हुए संग्रहीत किया जा सकता है इनपुट बाइनरी स्ट्रीम बाइट-टू-बाइट से मेल नहीं खाएगा।

cplusplus.com :

  • अपरिवर्तित इनपुट

    आईस्ट्रीम वर्ग के अन्य सदस्य कार्यों में से अधिकांश को बिना स्वरूपित इनपुट करने के लिए उपयोग किया जाता है, अर्थात् वर्णों पर कोई व्याख्या नहीं की गई है, इनपुट प्राप्त हो गए हैं। ये सदस्य कार्य इनपुट वर्ण अनुक्रम ( प्राप्त करें , गललाइन , झांकना , पढ़ना , पढ़ने योग्य ) से निर्धारित वर्णों की संख्या प्राप्त कर सकते हैं …

जैसा कि लो फ्रेंको ने बताया, std :: cin std :: ios_base :: binary के साथ नहीं खोला गया है, लेकिन उन कार्यों में से एक आपको उस व्यवहार के करीब ले सकता है जिसे आप ढूंढ रहे हैं।

खिड़कियों / मिंगव / एमएसआईएस / बाश के साथ, यदि आपको बाइनरी धाराओं के बीच अलग-अलग आज्ञाओं को पाइप करना है, तो आपको बाइनरी स्ट्रीम के रूप में std :: cin और std :: cout में हेरफेर करना होगा।

मिखाइल का _setmode समाधान पूरी तरह से काम करता है।

MinGW का उपयोग करते हुए, नीड हेडर निम्नलिखित हैं:

 #include <io.h> #include <fcntl.h> 

सभी पूर्वनिर्धारित iostream ऑब्जेक्ट संबंधित सी धाराओं के लिए बाध्य होने के लिए बाध्य हैं:

ऑब्जेक्ट cin ऑब्जेक्ट stdin से जुड़े एक स्ट्रीम बफ़र से इनपुट को नियंत्रित करता है, जिसमें घोषित किया गया है।

http://eel.is/c++draft/narrow.stream.objects

और इस प्रकार बाइनरी डेटा प्राप्त करने की विधि सी के लिए समान है:

असल में, सबसे अच्छा आप वास्तव में कर सकते हैं यह है:

freopen(NULL, "rb", stdin);

यह स्टडिन को एक ही इनपुट स्ट्रीम के रूप में खोल देगा, लेकिन बाइनरी मोड में सामान्य मोड में, विंडोज पर stdin से पढ़ना एक अक्षर ASCII 10 में \r\n (विंडोज़ न्यूलाइन) को परिवर्तित कर देगा। "आरबी" मोड का प्रयोग इस रूपांतरण को अक्षम करता है ताकि आप द्विआधारी डेटा में ठीक से पढ़ सकें।

https://stackoverflow.com/a/1599093/6049796