C भाषा को फॉर्म्याट स्पेसिफायर “%lf” को प्रयोग र printf·scanf को सही उपयोग

1. परिचय

C भाषा मा、संख्या र स्ट्रिङ्गको प्रदर्शन・इनपुटमा फर्म्याट स्पेसिफायरहरू प्रयोग गरिन्छ। विशेष गरी फ्लोटिंग पोइन्ट संख्याहरूलाई ह्यान्डल गर्दा、「%f」वा「%lf」जस्ता स्पेसिफायरहरूको भिन्नता बुझ्नु सही प्रोग्रामिङ गर्न महत्त्वपूर्ण छ। यस लेखमा、डबल प्रिसिजन फ्लोटिंग पोइन्ट(double प्रकार)सँग सम्बन्धित「%lf」को प्रयोगमा केन्द्रित हुँदै、printfscanf फङ्क्शनहरूमा प्रयोग、अन्य स्पेसिफायरहरूसँगको भिन्नता बारे व्याख्या गरिन्छ।

2. फर्म्याट स्पेसिफायर भनेको

फर्म्याट स्पेसिफायर भनेको, C भाषा मा डेटा प्रदर्शन वा इनपुट ढाँचालाई निर्दिष्ट गर्न प्रयोग हुने चिन्ह हो। डेटा प्रकारसँग उपयुक्त स्पेसिफायर प्रयोग गरेर, सही डेटा इनपुट/आउटपुट सम्भव हुन्छ। पहिलो पटक प्रतिनिधि फर्म्याट स्पेसिफायर र तिनीहरूको सम्बन्धित डेटा प्रकार हेर्नुहोस्।

मुख्य फर्म्याट स्पेसिफायर र डेटा प्रकारको मिलान

फर्म्याट स्पेसिफायरसम्बन्धित डेटा प्रकार
%dint प्रकार(पूर्णांक)
%ffloat प्रकार(एकल-प्रेसिजन फ्लोटिंग पोइन्ट संख्या)
%lfdouble प्रकार(डबल-प्रेसिजन फ्लोटिंग पोइन्ट संख्या)
%Lflong double प्रकार(विस्तारित डबल-प्रेसिजन फ्लोटिंग पोइन्ट संख्या)
侍エンジニア塾

3. printf कार्यमा 「%lf」 को प्रयोग

C भाषा को printf कार्यलाई, निर्दिष्ट ढाँचामा डेटा देखाउन प्रयोग गरिन्छ।printf कार्यमा दोहोरो-शुद्धता फ्लोटिङ बिन्दु संख्या देखाइन्छ, 「%f」 र 「%lf」 दुवै प्रयोग गर्न सकिन्छ, तर प्रत्येकको प्रयोगमा सानो भिन्नता हुन्छ।

printf मा 「%lf」 र 「%f」 को भिन्नता

printf कार्यमा, %f%lf दुवैलाई double प्रकारको आउटपुटमा प्रयोग गर्न सकिन्छ। यो कारणले, printf कार्यले फ्लोटिङ बिन्दु संख्या आउटपुट गर्दा, तर्कलाई स्वचालित रूपमा double प्रकारमा उन्नत गर्छ। त्यसैले, दोहोरो-शुद्धता फ्लोटिङ बिन्दु संख्या को आउटपुटमा 「%f」 प्रयोग गर्नु सामान्य हो।

उदाहरण

#include <stdio.h>

int main() {
    double num = 3.14159;
    printf("%f
", num);  // आउटपुट: 3.141590
    printf("%lf
", num); // आउटपुट: 3.141590
    return 0;
}

उपरोक्त उदाहरणमा, दुवै निर्दिष्टकर्ता समान परिणाम दिन्छन्, तर, printf मा double प्रकारको आउटपुटको लागि %f प्रयोग गर्नु मानक हो।

4. scanf function मा “%lf” को प्रयोग

scanf function ले इनपुट गरिएको डेटा निर्दिष्ट प्रकारको भेरिएबलमा संग्रह गर्न प्रयोग गरिन्छ।scanf मा, निर्दिष्टकर्ता र भेरिएबलको डेटा प्रकार मिलाउनु महत्त्वपूर्ण छ, यहाँ %f%lf को प्रयोग फरक गर्न आवश्यक हुन्छ।

scanf मा “%lf” र “%f” को भिन्नता

  • 「%f」:float प्रकारको भेरिएबलमा इनपुट संग्रह गर्न प्रयोग गरिन्छ।
  • 「%lf」:double प्रकारको भेरिएबलमा इनपुट संग्रह गर्न प्रयोग गरिन्छ।double प्रकारको भेरिएबलमा इनपुट प्राप्त गर्न भने, अनिवार्य रूपमा %lf प्रयोग गर्नुहोस्।

उदाहरण

#include <stdio.h>

int main() {
    double num;
    printf("कृपया संख्या प्रविष्ट गर्नुहोस्: ");
    scanf("%lf", &num); // उपयोगकर्ता इनपुटलाई double प्रकारको भेरिएबलमा भण्डारण गर्नुहोस्
    printf("प्रविष्ट गरिएको संख्या: %f
", num);
    return 0;
}

यसरी, scanf function मा डबल प्रिसिजन फ्लोटिंग पोइन्ट नम्बर इनपुट गर्दा「%lf」 प्रयोग गर्न आवश्यक हुन्छ। गल्तीले「%f」 प्रयोग गरेमा, अनपेक्षित व्यवहार हुन सक्छ।

5. %lf प्रयोग गर्दा ध्यान दिनुपर्ने बुँदाहरू

%lf प्रयोग गर्दा, विशेष गरी scanf कार्यमा निर्दिष्टकर्ता र चलको प्रकार मिलाउनु महत्त्वपूर्ण छ। असमानता भएमा, अनपेक्षित व्यवहार वा त्रुटि उत्पन्न हुन सक्छ।

सामान्य त्रुटिहरू र सही प्रयोग विधि

त्रुटिको उदाहरण

निम्न कोडमा, float प्रकारको चलमा %lf प्रयोग गरिएको छ, जसले सही कार्यको अपेक्षा गर्न सकिँदैन।

#include <stdio.h>

int main() {
    float num;
    printf("कृपया संख्या प्रविष्ट गर्नुहोस्: ");
    scanf("%lf", &num); // अनुपयुक्त निर्दिष्टक
    return 0;
}

सही कोड उदाहरण

निम्न उदाहरणमा, सही रूपमा double प्रकारको चलमा %lf प्रयोग गरिएको छ।

#include <stdio.h>

int main() {
    double num;
    printf("कृपया संख्या प्रविष्ट गर्नुहोस्: ");
    scanf("%lf", &num); // उपयुक्त निर्दिष्टकर्ता
    return 0;
}

scanf मा इनपुट गर्दा निर्दिष्टकर्ता र चलको प्रकार मिलाउन ध्यान दिनुहोस्।

6. अन्य फॉर्म्याट स्पेसिफायरहरूसँगको भिन्नता

「%lf」बाहेकका फॉर्म्याट स्पेसिफायरहरूलाई पनि बुझेर राख्दा, प्रयोग अनुसार तिनीहरूलाई सजिलै चयन गर्न सकिन्छ।

मुख्य फॉर्म्याट स्पेसिफायरहरू र प्रयोगहरू

  • %f: float प्रकारको डेटा प्रयोग (printf मा double प्रकार पनि सम्भव)
  • %Lf: long double प्रकारको डेटा प्रयोग
  • %e / %E: वैज्ञानिक लेखन शैलीमा आउटपुट प्रयोग

उदाहरण प्रयोग र भिन्नताको व्याख्या

#include <stdio.h>

int main() {
    long double num_long_double = 3.14159265358979323846L;
    printf("long double प्रकारको आउटपुट: %Lf
", num_long_double); // long double निर्दिष्टकर्ता
    printf("वैज्ञानिक संकेतनमा आउटपुट: %e
", num_long_double);  // वैज्ञानिक संकेतनमा आउटपुट
    return 0;
}

यसरी, डेटा प्रकार अनुसारको स्पेसिफायरलाई उपयुक्त रूपमा प्रयोग गर्दा, प्रदर्शन सामग्रीको शुद्धता सुधार हुन्छ।

7. सारांश

C भाषा मा दोहोरो-शुद्धता फ्लोटिङ पोइन्ट निर्दिष्टकर्ता “%lf” को बारेमा व्याख्या गर्यौं। तलका बुँदाहरूलाई समेटेमा, त्रुटि कम भएको कोडिङ सम्भव हुन्छ।

  • printf function: दोहोरो-शुद्धता फ्लोटिङ पोइन्ट नम्बरका लागि “%f” वा “%lf” प्रयोग गर्न सकिन्छ। तर, printf function सामान्यतया “%f” प्रयोग गर्छ।
  • scanf function: double प्रकारको लागि “%lf” प्रयोग गर्नुहोस्, float प्रकारको लागि “%f” प्रयोग गर्नुहोस्, र निर्दिष्टकर्ता र डेटा प्रकारको मिलान कायम राख्न आवश्यक छ।
  • ध्यान दिनुहोस्: यदि निर्दिष्टकर्ता सही छैन भने, विशेष गरी scanf मा, अनपेक्षित व्यवहार हुन सक्छ, त्यसैले प्रकार र निर्दिष्टकर्तालाई मिलाउन महत्त्वपूर्ण छ।