C ++ fegetexceptflag () - C ++ मानक पुस्तकालय

C ++ में fegetexceptflag () फ़ंक्शन फ़्लोटिंग पॉइंट अपवाद फ़्लैग्स को निर्दिष्ट करता है जो तर्क को निर्दिष्ट करता है, और फ्लैग द्वारा निर्दिष्ट बिंदु में इसे संग्रहीत करता है।

Fetgetexceptflag () फ़ंक्शन को हेडर फ़ाइल में परिभाषित किया गया है।

fegetexceptflag () प्रोटोटाइप

 int fegetexceptflag (fexcept_t * flagp, int excepts);

तर्क का एक बिटवाइज़ या फ़्लोटिंग पॉइंट अपवाद मैक्रोज़ हो सकता है।

fegetexceptflag () पैरामीटर

  • flagp: एक सूचक fexcept_t ऑब्जेक्ट पर जहां झंडे संग्रहीत किए जाएंगे।
  • अपवाद: प्राप्त करने के लिए अपवाद झंडे की बिटमास्क लिस्टिंग।
बिटमास्क ने मैक्रों को स्वीकार कर लिया
मैक्रो प्रकार विवरण
FE_DIVBYZERO ध्रुव त्रुटि शून्य से विभाजन
FE_INEXACT निष्प्राण सटीक परिणाम नहीं जैसे (1.0 / 3.0)
FE_INVALID डोमेन त्रुटि कम से कम एक तर्क का उपयोग किया जाता है जिसके लिए फ़ंक्शन परिभाषित नहीं है
FE_OVERFLOW अतिप्रवाह सीमा त्रुटि परिणाम प्रकार में बहुत बड़ा होता है जिसका रिटर्न प्रकार द्वारा प्रतिनिधित्व किया जाता है
FE_UNDERFLOW अंडरफ्लो रेंज एरर परिणाम प्रकार में बहुत छोटा होता है जिसे रिटर्न प्रकार द्वारा दर्शाया जाता है
FE_ALL_EXCEPT सभी अपवाद कार्यान्वयन द्वारा समर्थित सभी अपवाद

fegetexceptflag () रिटर्न मान

  • Fegetexceptflag () फ़ंक्शन सफलता पर शून्य देता है, अन्यथा नॉनजरो।

उदाहरण: कैसे fegetexceptflag () फ़ंक्शन काम करता है?

 #include #include #pragma STDC FENV_ACCESS ON using namespace std; void print_exceptions() ( cout << "Raised exceptions: "; if(fetestexcept(FE_ALL_EXCEPT)) ( if(fetestexcept(FE_DIVBYZERO)) cout << "FE_DIVBYZERO "; if(fetestexcept(FE_INEXACT)) cout << "FE_INEXACT "; if(fetestexcept(FE_INVALID)) cout << "FE_INVALID "; if(fetestexcept(FE_OVERFLOW)) cout << "FE_OVERFLOW "; if(fetestexcept(FE_UNDERFLOW)) cout << "FE_UNDERFLOW "; ) else cout << "None"; cout << endl; ) int main() ( fexcept_t excepts; feraiseexcept(FE_DIVBYZERO); /* save current state*/ fegetexceptflag(&excepts,FE_ALL_EXCEPT); print_exceptions(); feraiseexcept(FE_INVALID|FE_OVERFLOW); print_exceptions(); /* restoring previous exceptions */ fesetexceptflag(&excepts,FE_ALL_EXCEPT); print_exceptions(); return 0; )

जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 उठाया गया अपवाद: FE_DIVBYZERO बढ़ा हुआ अपवाद: FE_DIVBYZERO FE_INVALID FE_OVERFLOW उठाया गया अपवाद: FE_DIVBYZERO

दिलचस्प लेख...