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

C ++ में fesetenv () फ़ंक्शन टाइप fenet_t के दिए गए पॉइंटर ऑब्जेक्ट से फ्लोटिंग-पॉइंट वातावरण सेट करने का प्रयास करता है।

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

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

 int fesetenv (fenv_t * envp);

Fesetenv () फ़ंक्शन envp द्वारा इंगित ऑब्जेक्ट से फ़्लोटिंग पॉइंट वातावरण सेट करने का प्रयास करता है। Envp का मान पहले से feoundexcept या fegetenv पर कॉल करके प्राप्त किया जाना चाहिए या फ़्लोटिंग-पॉइंट मैक्रो स्थिरांक होना चाहिए।

fesetenv () पैरामीटर

  • envp: टाइप fenv_t के एक ऑब्जेक्ट को इंगित करता है जो फ्लोटिंग पॉइंट वातावरण की स्थिति को संग्रहीत करता है।

fesetenv () वापसी मान

  • सफलता पर, fesetenv () फ़ंक्शन 0 देता है।
  • असफल होने पर, यह नॉनज़रो लौटता है।

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

 #include #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; ) void print_current_rounding_direction() ( cout << "Current rounding method: "; switch (fegetround()) ( case FE_TONEAREST: cout << "FE_TONEAREST"; break; case FE_DOWNWARD: cout << "FE_DOWNWARD"; break; case FE_UPWARD: cout << "FE_UPWARD"; break; case FE_TOWARDZERO: cout << "FE_TOWARDZERO"; break; default: cout << "unknown"; ); cout << endl; ) void print_environment() ( print_exceptions(); print_current_rounding_direction(); ) int main(void) ( cout << "Initial environment " << endl; print_environment(); fenv_t envp; /* Save current environment */ fegetenv(&envp); feraiseexcept(FE_INVALID|FE_DIVBYZERO); fesetround(FE_DOWNWARD); cout << "After changing environment " << endl; print_environment(); /* Restores previous environment */ fesetenv(&envp); cout << "Restoring initial environment " << endl; print_environment(); return 0; )

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

 प्रारंभिक वातावरण उठाया अपवाद: कोई भी वर्तमान गोलाई विधि: FE_TONEAREST परिवेश बदलने के बाद उठाया अपवाद: FE_DIVBYZERO FE_INVALID वर्तमान गोलाई विधि: FE_DOWNWARD प्रारंभिक परिवेश को पुनर्स्थापित करना

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