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

C ++ में feclearexcept () फ़ंक्शन तर्क द्वारा निर्दिष्ट अस्थायी बिंदु अपवाद झंडे को साफ़ करने का प्रयास करता है।

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

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

 int feclearexcept (इंट एक्सेप्ट);

कार्य करने के लिए, आपको FENV_ACCESS को सक्षम करना चाहिए , जो आपके प्रोग्राम को उठाए गए अपवादों का परीक्षण करने के लिए फ़्लोटिंग पॉइंट वातावरण तक पहुंचने के लिए देगा।

feclearexcept () पैरामीटर

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

feclearexcept () वापसी मान

  • यदि सभी अपवादों को हटा दिया गया था या यदि छूट शून्य के बराबर है, तो feclearexcept () फ़ंक्शन शून्य मान देता है।
  • यदि कोई त्रुटि होती है तो यह नॉनजरो लौटाता है।

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

 #include #include #include #pragma STDC FENV_ACCESS ON using namespace std; int main() ( // clears all exceptions feclearexcept(FE_ALL_EXCEPT); cout << "1/0 = " << 1.0/0.0 << endl; // tests if above statement raised the FE_DIVBYZERO exception if(fetestexcept(FE_DIVBYZERO)) ( cout << "FE_DIVBYZERO is set" << endl; ) else ( cout << "FE_DIVBYZERO is not set" << endl; ) feclearexcept(FE_ALL_EXCEPT); cout << "sqrt(-1) = " << sqrt(-1) << endl; if(fetestexcept(FE_INVALID)) ( cout << "FE_INVALID is set" << endl; ) else ( cout << "FE_INVALID is not set" << endl; ) )

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

 1/0 = inf FE_DIVBYZERO को sqrt (-1) = -nan FE_INVALID सेट किया गया है

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