हेल्लो दोस्तों आज के इस पोस्ट में आपको C++ File handling in hindi के बारे में बताया गया है की क्या होता है कैसे काम करता है तो चलिए शुरू करते है
Contents
c++ file handling का परिचय
c++ के द्वारा files को भी handle किया जा सकता है इसके लिए c++ आपको streams provide करती है basically c++ में आप files के साथ निचे दी गए tasks को perform कर सकते है
- opening a file
- reading from a file
- writing to a file
- closing a file
c++ में file handling support provide किये जाने का मुख्य कारण output को permanently स्टोर करना होता है normally जब भी आप कोई program run करते है तो इसका output console window से exit होते है तो आपके program का output भी lost हो जाता है
ऐसी situation में एक ऐसे mechanism की requirement थी जिससे की output को permanently hard disk पर किसी file में स्टोर किया जा सके और जरुरत पड़ने पर उसे वापस retrieve किया जा सके
c++ file handing provide किये जाने का दूसरा मुख्य कारण output को दुबारा प्रयोग करना है एक बार जब आप output को file स्टोर करवा ले तो उसे future में वापस भी प्रयोग कर सकते है example के लिए आप इसे किसी दुसरे program में इनपुट के रूप में प्रयोग कर सकते है
आगे file handing में प्रयोग होने वाली stream classes के बारे में बताय जा रहा है यदि आपको streams का concept clear नहीं है
c++ file stream classes
file operations को perform करने के लिए c++ आपको ३ stream classes provide करती है तो आएय इनके बारे में जानने का प्रयास करते है
ifstream class
इस class के objects इनपुट file stream को represent करते है और file से input लेने के लिए प्रयोग किये जाते है
ofstream class
इस class के objects file output stream को represent करते है इस class के द्वारा आप files को क्रिएट करते है और file में output भी write करते है
fstream class
इस class के object complete file stream को represent करते है इस class के object से आप file से इनपुट read भी कर सकते है और file में output write भी कर सकते है
opening a file
c++ में file को open करने के लिएय आप open() मेथड का प्रयोग करते है इस method को उपर किसी भी file stream class के object पर call किया जा सकता है इस method का general syntax निचे दिया जा रहा है
void open(const char *filename,ios::mode);
जैसे की आप उपर दिए गए syntax में देख सकते है की open() method २ argument लेता है पहला argument एक constant character type का file name होता है जो की basically ये के pointer होता है जो की memory में file पॉइंट करता है पहले argument के रूप में आप कोई भी variable नहीं दे सकते है
file open करने के लिए fopen() method में दूसरा argument आप file opening mode pass करते है इन mode के बारे में आगे details से समझाया जा रहा है
file opening modes
किसी भी file से आप इनपुट read करे या उसमे output write करे सबसे पहले उसे property open करना जरुरी है files को अलग अलग purpose के लिए open किया जाता है इसीलिए c++ आपको file open करने के लिए अलग अलग modes provide करती है इन्हे file opening modes कहा जाता है
इन modes का प्रयोग file की safety के लिए होता है इन mode के द्वारा आप authentication provide करते है और कौन सा program file से read भी कर सकते है write भी कर सकते है और modify भी कर सकते है
निचे file opening modes की list दी जा रही है इन modes को आपको files open करने के लिए डिफाइन करना होता है
mode | explanation |
Ios::in | ये mode file को read only permission के साथ open करता है इस mode में open की गयी files में आप कुछ भी write नहीं कर सकते है ifstream class के objects के लिए ये default mode होता है |
Ios::out | इस mode से file write only permission के साथ open की जाती है इस mode से open की गयी files से आप इनपुट read नहीं कर सकते है ofstream class के object के लिए ये default mode होता है |
Ios::app | ये mode existing file के end में output append करने के लिए प्रयोग किया जाता है इसे append mode कहते है |
Ios::ate | ये mode output के लिएय open किया जाता है इस mode में file open होते ही controlfile के आखिर में पहुच जाता है |
Ios::trunc | इस mode में open की गयी file का पूरा content delete हो जाता है यदि आप file के existing content को delete करके उसमे नया data भरना चाहते है तो आप ये mode प्रयोग कर सकते है |
अभी तक आपने open() method के syntax के बारे में जाना है तो आएये अब इसे एक example से समझने का प्रयास करते है
ifstream obj; obj.open(“MyFile.txt”,ios::app);
उपर दिए गए example में ifstream class के object पर open method को call किया गया है method में file का नाम और appending mode pass किया गया है
आप चाहे तो बिना opening mode pass किये भी file को इस प्रकार open कर सकते है
ifstream obj; obj.open(“MyFile.txt”)
जब आप कोई भी opening mode pass नहीं करते है तो object की class का default mode प्रयोग किया जाता है जैसा की में पहले बात चूका हु ifstream class का default mode ios::in है और ofstream class का default mode ios::out है इसके आलावा fstream class के लिए ये दोनों ही default mode होते है ifstream class के object के द्वारा आप out mode में और ofstream class के object के द्वारा आप in mode में file open नहीं कर सकते है
writing to a file
files में output करने के लिए आप ofstream class के object को प्रयोग करते है इस object को left shift operator(<<) के साथ प्रयोग किया जाता है जिसका general syntax निचे दिया जा रहा है
ofstream-object<<variable-name;
तो आएये इसे example से समझने का प्रयास करते है
#include<iostream> #include<fstream> Using namespace std; Int main() { Ofstream fobj; Fobj.open(“MyFile”); //ofstream class object Cout<<”enter your name:”; Char yrname[30]; Cin.getline(yrname,30); //taking input from user Cout<<”writing your name to file”; Fobj<<yrname; //writing name into file Cout<<”your name was written into file…”; Fobj.close(); Return 0; }
उपर दिए गए program दिया गया output को generate करता है
enter your name: javahindi writing your name to file your name was written into file
reading from a file
files में से इनपुट read करने के लिए आप ifstream class के object को प्रयोग करते है इस object को overloaded right shift operator(>>) के साथ प्रयोग किया जाता है जिसका आपको general syntax निचे दिया जा रहा है
ifstream-obj>>variable-name;
इसे निचे example के माधयम से समझाया जा रहा है इस example में MyFile से वापस name को read किया जा रहा है इसे पहले उपर दी गए example में MyFile में name को write किया गया है
#include<iostream> #include<fstream> Using namespace std; Int main() { Ifstream ifobj; Char yrname[30]; Ifobj .open(“MyFile”); Cout<<”reading data from file…”; Ifobj>>yrname; Cout<<yrname; Ifobj.close() Return 0; }
उपर दिए गए program में निचे दिया गया output को generate करता है
reading data from file javahindi
closing a file
एक बार जब भी आप file के साथ read/write operation को perform कर ले तो आप उस stream को close करते है तो इसके लिए आप close() method का प्रयोग करेंगे इस method को आप stream object पर call करते है जिसका general syntax आपको निचे दिया जा रहा है
stream-class-object.close();
c++ file pointers
जब भी आप c++ के द्वारा किसी file को read और write करने के लीये open करते है तो उसके साथ 2 तरह के pointer associated रहते है ये pointer file में start से end तक कही भी move कर सकते है
- get pointer-इसे input pointer भी कहा जाता है ये pointer file में किसी particular लोकेशन से इनपुट को read करने के लिए प्रयोग किया जाता है जब भी आप file को read only mode में open करते है तो by default get pointer file के beginning में होता है
- put pointer –इसे output pointer भी कहा जाता है इस pointer से आप file में एक particular लोकेशन पर output को स्टोर कर सकते है जब भी आप file को write only mode में open करते है तो file का content delete हो जाता है और by default put pointer file के beginning में होता है
note:जब आप किसी file को append mode में open करते है तो put pointer existing content में आखिर में होता है
manipulating file pointer
pointer को उनकी default position से move किया जा सकता है इसके लिए c++ आपको 4 function provide करती है इन function को stream class object पर call किया जाता है
- seekg()-ये function get pointer को argument के रूप में specify की गयी लोकेशन पर move करता है argument में आप byte number pass करते है इसे execute होने के बाद उसी byte लोकेशन से इनपुट read किया जा सकता है
- seekp()-ये function put pointer को specify की गयी लोकेशन पर move करता है इस function में भी argument के रूप में byte number pass किया जाता है इसे execute होने के बाद आप उसी लोकेशन से output स्टोर करना प्रारंभ कर सकते है
- tellg()-ये function get pointer की current position return करती है
- tellp()-ये function put pointer की current लोकेशन को return करती है
example
#include<iostream> #include<fstream> Using namespace std; Int main() { Ifstream ifobj; Ifobj.open(“MyFile”,); //read only Ofstream ofobj; Ofobj.open(“MyFile”,ios::app) //append mode Cout<<”current postion of input file pointer:”<<ifobj.tellg()<<endl; Cout<<Going to postion 10th “<<endl; Ifobj.seekg(10); Cout<<current position of input file pointer:”<<ifobj.tell()<<endl<<endl; Cout<<”current position of input file pointer :”ofobj.tellp()<<endl; Cout<<”going to 15th position”<<endl; Cout<<”current position of output file pointer:”ofobj.seekp(15)<<endl; Return 0; }
उपर दिए गए program में निचे दिया output को generate करता है
current position of input pointer :-1 going to position 10th current position of output file pointer: -1 going to 15th position: current position of output file pointer :14
reference-https://www.geeksforgeeks.org/file-handling-c-classes/
निवेदन:-आप सभी छात्र –छात्रों से निवेदन है की अगर आपको ये Topic(C++ File handling in hindi) या post अच्छा लगा हो तो कृपया आप इस वेबसाइट के बारे में अपने दोस्तों(C++ File handling in hindi) को जरुर बताये और -अगर कोई topic(C++ File handling in hindi) से संबधित प्रश्न हो तो कमेंट्स(comments) आपके लिए ही बना है और किसी Subject(C++ File handling in hindi) के लेकर भी कोई प्रश्न हो तो कमेंट करे