Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C भाषा में टेक्स्ट फाइल और बाइनरी फाइल में अंतर


फाइल के प्रकार

C में फाइल्स को मुख्यतः दो श्रेणियों में बांटा जाता है:

  1. टेक्स्ट फाइल (Text File)
  2. बाइनरी फाइल (Binary File)

टेक्स्ट फाइल (Text File)

  • मानव-पठनीय (human-readable) वर्णों में डेटा संग्रहीत करती है।
  • प्रत्येक वर्ण आमतौर पर 1 बाइट लेता है (ASCII/UTF-8)।
  • संख्याएँ अपने वर्ण प्रतिनिधित्व में संग्रहीत होती हैं (उदाहरण: 4567 → 4 बाइट्स: '4','5','6','7')।
  • नई लाइन (\n) का अनुवाद होता है (Windows: \r\n ↔ \n)।
  • साधारण टेक्स्ट एडिटर (Notepad, VS Code) से खोलकर देख/संपादित कर सकते हैं।
  • उदाहरण: .txt, .c, .h, .csv, .json, .html।

बाइनरी फाइल (Binary File)

  • मेमोरी में डेटा के बिट-स्तरीय प्रतिनिधित्व को सीधे डिस्क पर लिखती है।
  • मानव-पठनीय नहीं; विशेष सॉफ्टवेयर चाहिए।
  • संख्याएँ अपने आंतरिक बाइनरी रूप में संग्रहीत होती हैं (उदाहरण: int 4567 → 4 बाइट्स कच्चा बाइनरी)।
  • कोई वर्ण अनुवाद नहीं होता; बाइट्स जैसे के तैसे लिखे/पढ़े जाते हैं।
  • आकार में छोटी और पढ़ने/लिखने में तेज।
  • उदाहरण: .exe, .jpg, .mp3, .pdf, .dat, डेटाबेस फाइल्स।

तुलना तालिका

विशेषताटेक्स्ट फाइलबाइनरी फाइल
पठनीयतामानव-पठनीयमशीन-पठनीय
संग्रहण प्रारूपवर्ण-आधारितबाइट-आधारित (कच्चा)
संख्या संग्रहणवर्णों के रूप में (अधिक स्थान)बाइनरी रूप में (कम स्थान)
नई लाइन हैंडलिंगOS-निर्भर अनुवादकोई अनुवाद नहीं
संपादनकिसी भी टेक्स्ट एडिटर सेहेक्स एडिटर/विशेष सॉफ्टवेयर
पोर्टेबिलिटीउच्च (एन्कोडिंग पर निर्भर)एंडियनेस/आर्किटेक्चर पर निर्भर
गतिधीमी (पार्सिंग आवश्यक)तेज (सीधा मेमोरी मैप)
C मोड"r", "w", "a""rb", "wb", "ab"

C में उदाहरण

टेक्स्ट फाइल लिखना/पढ़ना

// लिखना
FILE *fp = fopen("data.txt", "w");
fprintf(fp, "%d %f %s\n", 42, 3.14, "Hello");
fclose(fp);

// पढ़ना
fp = fopen("data.txt", "r");
int a; float b; char s[20];
fscanf(fp, "%d %f %s", &a, &b, s);

बाइनरी फाइल लिखना/पढ़ना

struct Record { int id; float score; char name[20]; };

// लिखना
FILE *fp = fopen("data.bin", "wb");
struct Record r = {1, 95.5, "Alice"};
fwrite(&r, sizeof(r), 1, fp);
fclose(fp);

// पढ़ना
fp = fopen("data.bin", "rb");
struct Record r2;
fread(&r2, sizeof(r2), 1, fp);

फाइल एक्सेस विधियाँ

  • अनुक्रमिक (Sequential): डेटा क्रम से पढ़ा/लिखा जाता है (टेप की तरह)। fgetc, fread क्रमिक हैं।
  • यादृच्छिक एक्सेस (Random Access): किसी भी स्थान पर सीधे जा सकते हैं। fseek(), ftell(), rewind() उपयोग होते हैं। बाइनरी फाइल्स में अधिक प्रभावी।

कौन सा चुनें?

  • टेक्स्ट फाइल: कॉन्फिगरेशन, लॉग्स, CSV, JSON, स्रोत कोड, अंतरोपयोगिता (interoperability) जब प्राथमिकता हो।
  • बाइनरी फाइल: उच्च प्रदर्शन, बड़ी संख्यात्मक डेटा, संरचनाएं, छवियाँ, ऑडियो, डेटाबेस, जब फाइल केवल आपके प्रोग्राम द्वारा पढ़ी जाए।
  1. C भाषा में हाई-लेवल I/O फंक्शन्स C भाषा में हाई-लेवल I/O फंक्शन्स

    I/O फंक्शन्स के प्रकार हाई-लेवल I/O: मनुष्यों द्वारा आसानी से समझा जाता है, पोर्टेबल होता है। लो-लेवल I/O: कंप्यूटर द्वारा समझा जाता है, तेज़ होता है लेकिन नॉन-पोर्टेबल। हाई-लेवल I/O फंक्शन्स की सूची फंक्शनविवरण fprintf()फाइल में डेटा लिखना fscanf()फाइल से डेटा पढ़ना putc() / fputc()फाइल में कै

  1. C भाषा में शिफ्ट ऑपरेशन क्या हैं? C भाषा में शिफ्ट ऑपरेशन क्या हैं?

    समस्या C भाषा का उपयोग करके किसी संख्या के बाएं शिफ्ट, दाएं शिफ्ट और कॉम्प्लीमेंट को दिखाने का सरल प्रोग्राम क्या है? समाधान बाएं शिफ्ट (Left Shift) यदि किसी वेरिएबल का मान एक बार बाएं शिफ्ट किया जाता है, तो उसका मान दोगुना हो जाता है। उदाहरण के लिए, a = 10, तो a<<1 = 20 दाएं शिफ्ट (Right Sh

  1. SH फाइलें क्या हैं और उन्हें कैसे निष्पादित करें? SH फाइलें क्या हैं और उन्हें कैसे निष्पादित करें?

    स्क्रिप्ट फाइलें उन कमांड्स को समाहित करती हैं जिन्हें एक निश्चित प्रोग्राम या स्क्रिप्टिंग इंजन द्वारा निष्पादित किया जाता है। ये कमांड्स बिना कंपाइल किए निष्पादित की जाती हैं। रनटाइम एनवायरनमेंट के लिए स्क्रिप्टिंग भाषाओं में निर्देश लिखे जाते हैं। विभिन्न उद्देश्यों और एनवायरनमेंट के साथ कई स्क्र