मैं एक आईट्रीम का उपयोग कर रहा हूं जो स्ट्रिंगस्ट्रीम, ifstream या उपयोगकर्ता द्वारा परिभाषित स्ट्रीम प्रकार हो सकता है और मुझे यह जानने की ज़रूरत है कि, अगर ifstream के मामले में, यह बाइनरी मोड में खोला नहीं गया था (इसलिए मैं अपवाद फेंक सकता हूं) । मैंने निम्न विधि का प्रयास किया है:क्या यह जांचने का कोई तरीका है कि बाइनरी मोड में एक आईट्रीम खोला गया था या नहीं?
if ((_is.flags() & ios::binary) == 0)
throw exception(...)
लेकिन कोई अपवाद कभी नहीं फेंक दिया गया है। परीक्षण इस मामले में विफल रहता है क्योंकि _is.flags() 0x201 और ios :: बाइनरी 0x20 देता है। क्या टेक्स्ट मोड में कोई स्ट्रीम खोला गया है, यह जानने का कोई तरीका है?
मुझे डर था कि यह मामला था। – Ferruccio