दिया गया कार्य C++ में fread() के कार्य को दिखाना है। इस लेख में हम उन विभिन्न पैरामीटर को भी देखेंगे जो fread() को पास किए जाते हैं और यह फ़ंक्शन क्या लौटाता है।
fread() C++ का एक अंतर्निहित फ़ंक्शन है जो स्ट्रीम से डेटा का एक ब्लॉक पढ़ता है। यह फ़ंक्शन स्ट्रीम से "size" बाइट्स प्रत्येक के कई ऑब्जेक्ट्स गिनता है और उन्हें बफर मेमोरी में संग्रहीत करता है, फिर स्थिति पॉइंटर पढ़े गए बाइट्स की कुल मात्रा से आगे बढ़ जाता है। यदि सफल होता है तो पढ़े गए बाइट्स की मात्रा size * count होगी।
सिंटैक्स
fread(void *buffer, size_t size, size_t count, FILE *file_stream);
पैरामीटर
इस फ़ंक्शन को सभी 4 पैरामीटर की आवश्यकता होगी। आइए पैरामीटर को समझते हैं।
buffer − यह एक बफर मेमोरी ब्लॉक का पॉइंटर है जहां स्ट्रीम से पढ़े गए बाइट्स संग्रहीत होते हैं।
size − यह पढ़े जाने वाले प्रत्येक तत्व के आकार को बाइट्स में परिभाषित करता है। (size_t unsigned int है)।
count − पढ़े जाने वाले तत्वों की संख्या।
file_stream − फ़ाइल स्ट्रीम का पॉइंटर जिससे हम बाइट्स पढ़ना चाहते हैं।
वापसी मान
सफलतापूर्वक पढ़े गए तत्वों की संख्या लौटाई जाती है।
यदि कोई पढ़ने की त्रुटि होती है या यह फ़ाइल के अंत तक पहुंच जाता है तो लौटाए गए तत्वों की संख्या count चर से भिन्न होगी।
उदाहरण
#include <bits/stdc++.h> #include <cstdio> using namespace std; int main() { FILE* file_stream; char buf[100]; file_stream = fopen("tp.txt", "r"); while (!feof(file_stream)) //will read the file { // will read the contents of the file. fread(buf, sizeof(buf), 1, file_stream); cout << buf; } return 0; }मान लें कि tp.txt फ़ाइल में निम्नलिखित सामग्री है
tutorialspoint
Contribution
anything here
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा −
tutorialspoint Contribution anything here
आइए उदाहरण लें और जांचें कि जब count शून्य हो और size शून्य हो तो आउटपुट क्या होगा।
उदाहरण
#include <iostream> #include <cstdio> using namespace std; int main() { FILE *fp; char buffer[100]; int retVal; fp = fopen("tpempty.txt","rb"); retVal = fread(buffer,sizeof(buffer),0,fp); cout << "The count = 0, then return value = " << retVal << endl; retVal = fread(buffer,0,1,fp); cout << "The size = 0, then value = " << retVal << endl; return 0; }आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा −
The count = 0, then return value = 0 The size = 0, then value = 0