2017-02-11 5 views
6

मैं टेक्स्ट फ़ाइल से पढ़ने की संख्या का प्रयास कर रहा हूं और इसे एक सरणी में संग्रहीत कर रहा हूं। जब मैं सरणी में मौजूद संख्याओं को पढ़ने की कोशिश करता हूं, तो आउटपुट थोड़ी दूर है। यह मेरा कोड है:ऐरे सही मूल्यों को प्रिंट नहीं कर रहा है

looking at point 2.30 4.30 
looking at point 7.60 7.10 
looking at point 8.50 3.00 
looking at point 5.90 0.70 
looking at point 1.00 2.00 
looking at point 5.10 5.80 
looking at point 4.00 4.50 
looking at point 4.30 3.40 

क्या यह है कि मैं कर रहा हूँ है:

struct point{ 
    double x[7]; 
    double y[7]; 
}point; 

int main() 
{ 
    FILE *fp; 
    fp = fopen("data_2.txt", "r"); 
    struct point points; 
    int len = 8; 
    int i = 0; 
    int j = 0; 
    int k = 0; 
    double a = 0; 
    double b = 0; 
    double c = 0; 
    double total = 0; 
    int left=0; 
    int right=0; 
    int line = 0; 
    for (i=0;i<len;i++) 
    { 
     fscanf(fp, "%lf %lf", &points.x[i],&points.y[i]); 
    } 
    for(i = 0; i < len;i++) 
     printf("looking at point %.2f %.2f\n",points.x[i],points.y[i]); 

    return(0); 
} 

टेस्ट फ़ाइल का उपयोग मैं निम्नलिखित अंक

2.3 7.5 
    7.6 7.1 
    8.5 3.0 
    5.9 0.7 
    1.0 2.0 
    5.1 5.8 
    4.0 4.5 
    4.3 3.4 

उत्पादन मैं शामिल है गलत?

+0

यह अजीब बात है। एक बार जब यह फ़ंक्शन में उपयोग पूरा हो जाता है, तो फ़ाइल को बंद करने का प्रयास करें। – Shravan40

+3

आपके पास सरणी अनुक्रमणिका का ओवरफ़्लो है। संरचना बिंदु में ऐरे 'x, y' केवल 7 संख्याएं रख सकता है, लेकिन आप 8 में लिखने की कोशिश कर रहे हैं। सरणी आकार का विस्तार करने से यह ठीक हो जाएगा। –

+0

आपको [उचित सी स्वरूपण] (// prohackr112.tk/pcf) में देखना चाहिए। –

उत्तर

7

समस्या यह है कि आपकी संरचना 8 संख्याओं को स्टोर करने के लिए पर्याप्त नहीं है और यह undefined behavior का आविष्कार कर रही है। आपके पास double x[7] है लेकिन आप 8.

क्यों आपको यह विशिष्ट व्यवहार मिल रहा है, और मैं इसे ओएस एक्स पर पुन: पेश कर सकता हूं, मुझे यकीन नहीं है। लेकिन यह आपके लिए अपरिभाषित व्यवहार है।

3

अद्यतन इस तरह अपने struct:

struct point{ 
    double x[8]; 
    double y[8]; 
}point; 

यह आप पढ़ सकते हैं और सही ढंग से डेटा को प्रदर्शित करने में मदद करेगा। example-with-stdin

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