2012-04-16 12 views
7
/* Problem 38 */ 
     #include <iostream> 
     using namespace std; 
     class abc { 
     double n; 
      public: 
     abc() { n = 67.5; cout << "1\n"; } 
     abc(double num) { set(num); cout << "2\n"; } 
     double get() const { cout<<"3\n"; return n; } 
     virtual void set(double num) { 
      if (num < 10) 
      n = 10; 
      else if (num > 100) 
      n = 100; 
      else 
      n = num; 
      cout << "4\n"; 
     } 
     }; 
     class def: public abc { 
     double m; 
      public: 
     def() { m = 6.2; cout << "5\n"; } 
     def(double num1, double num2): abc(num1) { 
      set(num2 - abc::get()); cout << "6\n"; } 
     double get() const { 
      cout << "7\n"; return m + abc::get(); } 
     void set(double num) { 
      if (num < 10 || 100 < num) 
      m = num; 
      else 
      m = 55; 
      cout << "8\n"; 
     } 
     }; 
     void do_it(abc &var, double num) 
     { cout << var.get() << '\n'; 
     var.set(num); 
     cout << var.get() << '\n'; 
     } 
     int main() 
     { abc x(45); 
     def y(2, 340); 
     cout.setf(ios::fixed); 
     cout.precision(3); 
     do_it(x, 200); 
     do_it(y, 253); 
     cout << x.get() << '\n'; 
     cout << y.get() << '\n'; 
     return 0; 
     } 

ऊपर कोड मैं सिर्फ पता है कि दो लाइनों के नीचे वास्तव में उपरोक्त कोड में क्या करेंगेसी ++ वॉकथ्रू cout.setf (आईओएस :: निश्चित); और cout.precision();

cout.setf(ios::fixed); cout.precision(3);

कृपया बस मुझे कुछ स्पष्टीकरण का जवाब देना नहीं है चाहता था के साथ इतना क्योंकि सराहना की जाएगी मैं कल अपनी अंतिम परीक्षा के लिए तैयार होने के लिए एक पैदल यात्रा कर रहा हूं।

मैं खोज की है और कुछ स्रोत यह झंडे स्थापित करने के लिए, लेकिन वास्तव में मैं इसके बारे में अवधारणा है क्या नहीं मिलता है और यह कैसे काम करता

+5

[ 'std :: ios_base :: setf'] (http: // en .cppreference.com/w/cpp/io/ios_base/setf) और ['std :: ios_base :: precision'] (http://en.cppreference.com/w/cpp/io/ios_base/precision)। दोनों पृष्ठों में – Praetorian

+0

फ़ंक्शन के बारे में स्पष्टीकरण हैं! मैं वास्तव में प्रोग्राम की पैदल यात्रा की प्रक्रिया को बर्बाद नहीं करना चाहता हूं लेकिन सेटफ [सेट फ्लैग] सभी आउटपुट का संदर्भ देता है या बाद में जो कुछ भी करने जा रहा है? – Ali

+1

मुझे समझ में नहीं आता कि आपका मतलब क्या है * सभी आउटपुट या जो भी बाद में cout करने जा रहा है *। आप 'setf()' को कॉल करके 'std :: cout' स्ट्रीम में स्वरूपण झंडे लगा रहे हैं, इसलिए यह भविष्य में कॉल में 'cout' printfs सामान के तरीके को प्रभावित करता है। – Praetorian

उत्तर

11
cout.setf(ios::fixed) 

बनाता है कहते हैं प्रिंट दशमलव की एक निश्चित संख्या के साथ तैरता अदालत और

cout.precision(3) 

यह संख्या तीन होने के लिए सेट करता है।

उदाहरण के लिए

, यदि आप एक

double f = 2.5; 

मिला तो

cout << f; 

2.500 
+0

एक बार जब आप इसे पूरा कर लेंगे तो setf (ios :: fixed) को कैसे हटाएं? – sumanth232

+0

प्रलेखन के अनुसार 'cout.unsetf (ios :: fixed) 'चाल चलाना चाहिए। – bjhend

3

कैसे अपने उत्पादन को स्वरूपित करने के बारे में महान प्रलेखन प्रिंट होगा: Output formatting

जब आप कमांड लाइन UI करने का प्रयास कर रहे होते हैं तो यह हमेशा उपयोगी होता है।

0

यह हेरफेर पुस्तकालय सहित के समान है:
में शामिल हैं:

<iomanip> 

और फिर निम्नलिखित कार्य

cout << fixed << showpoint; 
cout << setprecision(3); 
0
#include<iostream> 

using namespace std; 

int main(){ 
    float large = 2000000000; 
    cout << large; 
    return 0; 
} 

आउटपुट के रूप में वैज्ञानिक अंकन में हो जाएगा का उपयोग कर:

2e+009 

आदेश में मूल्य प्राप्त करने के रूप में यह आप का उपयोग करना चाहिए cout.setf(ios::fixed)

#include<iostream> 

    using namespace std; 

    int main(){ 
     cout.setf(ios::fixed); 
     float large = 2000000000; 
     cout << large; 
     return 0; 
    } 

उत्पादन किया जाएगा के रूप में यह डिफ़ॉल्ट परिशुद्धता जो नाव के लिए 6 के साथ है।

2000000000.000000 

आप के रूप में ऊपर कोड में सटीक सेट कर सकते हैं:

cout.precision(7); 

.....

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^