2013-06-08 14 views
18

में एक फाइल करने के लिए Structs एक फाइल करने के लिए एक पूरी struct लिखने के लिए क्या यह संभव हैलेखन ग

उदाहरण:

struct date { 
    char day[80]; 
    int month; 
    int year; 
}; 
+9

हाँ का उपयोग कर ................. –

+0

इसे भी पढ़ें: [सी में फ़ाइल में संरचना कैसे लिखें] (http://www.codingunit.com/c-tutorial-binary-file-io) –

उत्तर

26

क्या यह संभव है एक फाइल करने के लिए एक पूरी struct लिखने के

आपका प्रश्न वास्तव में फ़ाइल में संरचना उदाहरण लिख रहा है।

  1. आप इसे प्राप्त करने के लिए fwrite फ़ंक्शन का उपयोग कर सकते हैं।
  2. आपको पहले तर्क में संदर्भ पारित करने की आवश्यकता है।
  3. sizeof प्रत्येक ऑब्जेक्ट
  4. प्रत्येक ऑब्जेक्ट की संख्या तीसरे तर्क में लिखने के लिए।
  5. 4 वें तर्क में फ़ाइल सूचक।
  6. binary mode में फ़ाइल को खोलना न भूलें।
  7. आप फ़्रेड का उपयोग कर फ़ाइल से ऑब्जेक्ट्स पढ़ सकते हैं।
  8. जब आप छोटे एंडियन सिस्टम में लिख रहे/पढ़ रहे हों और बड़े एंडियन सिस्टम और वाइसवर्सा में पढ़ना/लिखना चाहते हैं तो अंतहीनता से सावधान रहें। पढ़ें how-to-write-endian-agnostic-c-c-code

    struct date *object=malloc(sizeof(struct date)); 
    strcpy(object->day,"Good day"); 
    object->month=6; 
    object->year=2013; 
    FILE * file= fopen("output", "wb"); 
    if (file != NULL) { 
        fwrite(object, sizeof(struct date), 1, file); 
        fclose(file); 
    } 
    

आप उन्हें उसी तरह से पढ़ सकते हैं .... fread

struct date *object2=malloc(sizeof(struct date)); 
    FILE * file= fopen("output", "rb"); 
    if (file != NULL) { 
     fread(object2, sizeof(struct date), 1, file); 
     fclose(file); 
    } 
    printf("%s/%d/%d\n",object2->day,object2->month,object2->year); 
+1

उसे कम से कम –

+0

I पर संरचना पैडिंग से सावधान रहना चाहिए। फ़ाइल में कुछ सी ऑब्जेक्ट्स भी लिखे हैं और उन्हें वापस पढ़ना और उन्हें संसाधित करना चाहते हैं। लेकिन, मुझे नहीं पता कि कौन सी ऑब्जेक्ट्स फाइल में लिखी गई हैं, यह किसी भी हो सकती है, इसलिए, फ्रेड में, मैं उस वस्तु के आकार() को नहीं जानता जो मैं पढ़ रहा हूं। साथ ही, एक समय में बिल्कुल एक objct कैसे पढ़ा जाए? कैसे फैल सकता है कि एक फ़ाइल में बाइट्स की शुरुआत और अंत जो ऑब्जेक्ट सीमाओं का प्रतिनिधित्व करता है? –

+0

मुझे लगता है, अगर ऐसा है तो फ़ाइल के लिए एक संरचना होनी चाहिए, उदाहरण के लिए, मान लीजिए कि आप एक पंक्ति में टाइप लिखते हैं और ऑब्जेक्ट किसी अन्य पंक्ति में लिखते हैं .. फिर उस प्रकार के आधार पर प्रोग्राम से जिसे आप जानते हैं आकार .. – pinkpanther

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