file input output operations c
C ++ में फाइल इनपुट आउटपुट ऑपरेशंस और फाइल पॉइंटर फंक्शंस पर एक अध्ययन।
वास्तविक समय की प्रोग्रामिंग में, हम डेटा के बड़े हिस्से से निपटते हैं, जो मानक इनपुट-आउटपुट डिवाइस से समायोजित नहीं किए जा सकते हैं। इसलिए हमें डेटा संग्रहीत करने के लिए द्वितीयक भंडारण का उपयोग करने की आवश्यकता है। माध्यमिक भंडारण का उपयोग करते हुए हम आमतौर पर फ़ाइलों के रूप में डेटा संग्रहीत करते हैं।
हम डेटा से फ़ाइलों को पढ़ सकते हैं या डेटा को पाठ या बाइनरी प्रारूप में स्ट्रीम नामक डेटा के अनुक्रम का उपयोग करके लिख सकते हैं। C ++ में फाइलों से संबंधित विभिन्न इनपुट / आउटपुट और अन्य ऑपरेशन हैं। यह ट्यूटोरियल विभिन्न वर्गों का उपयोग करके फाइलों से संबंधित इन ऑपरेशनों की व्याख्या करता है।
=> एक्सक्लूसिव C ++ ट्रेनिंग ट्यूटोरियल सीरीज़ के लिए यहां जाएं।
आप क्या सीखेंगे:
फ़ाइल इनपुट / आउटपुट क्लासेस C ++ में
हमने C ++ में एक iostream क्लास देखी है जो कि cin और cout सहित मानक इनपुट और आउटपुट कार्यक्षमता को परिभाषित करती है। यह वर्ग क्रमशः कीबोर्ड और मॉनिटर जैसे मानक इनपुट और आउटपुट डिवाइस तक सीमित है।
जब फ़ाइल संचालन की बात आती है, तो C ++ में कक्षाओं का एक अलग सेट होता है जिसका उपयोग किया जा सकता है।
इन वर्गों को नीचे वर्णित किया गया है:
- नदी का किनारा: फाइल हैंडलिंग क्लास जो आउटपुट फाइल स्ट्रीम को दर्शाती है और इसका उपयोग फाइलों में डेटा लिखने के लिए किया जाता है।
- इस्ट्रीम: फ़ाइल हैंडलिंग वर्ग जो इनपुट फ़ाइल स्ट्रीम को दर्शाता है और फ़ाइल से डेटा पढ़ने के लिए उपयोग किया जाता है।
- नदी का किनारा: फाइल हैंडलिंग क्लास जिसमें इफस्ट्रीम और इनस्ट्रीम दोनों को हैंडल करने की क्षमता है। इसका उपयोग फ़ाइल से पढ़ने और लिखने के लिए किया जा सकता है।
C ++ फ़ाइल हैंडलिंग में निम्नलिखित ऑपरेशन समर्थित हैं:
- एक फ़ाइल खोलो
- एक फ़ाइल बंद करें
- एक फ़ाइल से पढ़ें
- एक फ़ाइल में लिखें
आइए हम इनमें से प्रत्येक ऑपरेशन को विस्तार से देखें !!
एक फ़ाइल खोलो
किसी एक स्ट्रीम क्लास की ऑब्जेक्ट को फ़ाइल में पढ़ना या लिखना या दोनों के लिए फ़ाइल को खोलना कहा जाता है। इस स्ट्रीम ऑब्जेक्ट का उपयोग करके एक खुली फ़ाइल को कोड में दर्शाया गया है। इस प्रकार इस स्ट्रीम ऑब्जेक्ट पर किए गए किसी भी रीडिंग / राइटिंग ऑपरेशन को भौतिक फ़ाइल पर भी लागू किया जाएगा।
स्ट्रीम के साथ फ़ाइल खोलने का सामान्य सिंटैक्स है:
void open(const char* filename, ios::open mode mode)
यहाँ,
फ़ाइल नाम => खोली जाने वाली फ़ाइल का पथ और नाम युक्त स्ट्रिंग।
मोड => वैकल्पिक पैरामीटर उस मोड को इंगित करता है जिसमें फ़ाइल को खोला जाना है।
C ++ विभिन्न मोड का समर्थन करता है जिसमें फ़ाइल को खोला जा सकता है। हम OR ऑपरेटर का उपयोग करके इन मोड के संयोजन को भी निर्दिष्ट कर सकते हैं।
खिड़कियों के लिए सबसे अच्छा अजगर विचार 10
फ़ाइल मोड | विवरण |
---|---|
ios :: में | पढ़ने के लिए फ़ाइल को इनपुट मोड में खोलता है। |
ios :: बाहर | फ़ाइल को डेटा लिखने के लिए फ़ाइल को आउटपुट मोड में खोलता है। |
ios :: खा लिया | फ़ाइल के अंत में प्रारंभिक स्थिति सेट करें। यदि फ़ाइल ध्वज का अंत सेट नहीं है, तो प्रारंभिक स्थिति फ़ाइल की शुरुआत में सेट की गई है। |
ios :: ट्रंक | यदि फ़ाइल लिखने के लिए खोली गई है और पहले से ही सामग्री है, तो सामग्री को काट दिया जाता है। |
ios :: ऐप | फ़ाइल को एपेंड मोड में खोलता है जैसे कि फ़ाइल के अंत में सभी सामग्री संलग्न हैं। |
ios :: बाइनरी | बाइनरी मोड में फ़ाइल खोलता है। |
उदाहरण के लिए,यदि हम बाइनरी मोड में डेटा को जोड़ने के लिए एक फ़ाइल 'myfile.dat' खोलना चाहते हैं, तो हम निम्नलिखित कोड लिख सकते हैं।
ofstream myfile;
myfile.open(“myfile.dat”, ios::out|ios::app|ios::binary);
जैसा कि पहले ही उल्लेख किया गया है, मोड पैरामीटर वैकल्पिक है। जब हम दूसरे पैरामीटर को निर्दिष्ट किए बिना किसी फ़ाइल को खोलते हैं, तो एक खुले सदस्य का कार्य करता है, जिसके साथ, फ़ाइल को खोलने के लिए एक डिफ़ॉल्ट मोड है।
ये निम्नानुसार दिए गए हैं:
कक्षा | डिफ़ॉल्ट मोड |
---|---|
इफस्ट्रीम | ios :: में |
भीतर की तरफ | ios :: बाहर |
बहत ु | ios :: in | ios :: बाहर |
इसलिए, यदि हम खुले फ़ंक्शन में दूसरे पैरामीटर को निर्दिष्ट नहीं करते हैं, तो उपयोग किए गए स्ट्रीम वर्ग के आधार पर, फ़ाइल को डिफ़ॉल्ट मोड के साथ खोला जाता है।
एक फ़ाइल को बंद करना
जब हम किसी फाइल पर इनपुट और आउटपुट ऑपरेशंस के साथ काम करते हैं तो फाइल बंद करने के लिए क्लोज फंक्शन का उपयोग कर सकते हैं और फाइल द्वारा रखे गए रिसोर्सेस का उपयोग कर सकते हैं।
किसी फ़ाइल को बंद करने का कार्य है:
void close()
इसलिए, जब हम उपरोक्त फ़ाइल myfile पर संचालन के साथ करते हैं, तो हम फ़ाइल को निम्नानुसार बंद कर सकते हैं:
myfile.close();
एक बार क्लोज फंक्शन का उपयोग करके फाइल को बंद कर दिया जाता है, तो संबंधित फाइल ऑब्जेक्ट को दूसरी फाइल को खोलने के लिए फिर से इस्तेमाल किया जा सकता है।
एक फ़ाइल से पढ़ना
हम स्ट्रीम निष्कर्षण ऑपरेटर (>>) का उपयोग करके लाइन द्वारा फ़ाइल लाइन से जानकारी पढ़ सकते हैं। यह सिने का उपयोग करते हुए मानक इनपुट से इनपुट पढ़ने के समान है। केवल फाइलों के मामले में अंतर होने के कारण, हम सिनेमा के बजाय ifstream या fstream वस्तु का उपयोग करते हैं।
फ़ाइल से पढ़ने के लिए नमूना कोड नीचे दिया गया है:
ifstream myfile; myfile.open(“samp_file.txt”); cout<<”Reading from a file”<>data; cout<उपरोक्त कोड में, हम एक फ़ाइल खोलते हैं और स्ट्रीम निष्कर्षण ऑपरेटर (>>) का उपयोग करके, हम फ़ाइल की सामग्री को पढ़ते हैं। एक बार पढ़ने के बाद, हम फ़ाइल को बंद कर सकते हैं।
एक फ़ाइल के लिए लेखन
हम फ़ाइल संचालन का उपयोग करके फ़ाइल में डेटा भी लिख सकते हैं। फ़ाइल में डेटा लिखने के लिए हम जिस ऑपरेटर का उपयोग करते हैं, वह एक स्ट्रीम प्रविष्टि ऑपरेटर है (<<). Once again this is the same operator that we use to print data to a standard output device using cout. Difference between the two is that for file related writing we use ofstream or fstream object.
हमें निम्नलिखित उदाहरण कोड पर विचार करें:
char data(100); ofstream myfile; myfile.open(“samp_file.txt”); cout<<”Enter the string to be written to file”<यहां, हम इनपुट से एक लाइन पढ़ते हैं और इसे एक फाइल पर लिखते हैं जो कि स्टॉपर ऑब्जेक्ट के साथ खोला गया था।
नीचे दिए गए कोड उदाहरण में, हम सभी फ़ाइल हैंडलिंग ऑपरेशन का एक प्रदर्शन प्रदान करते हैं।
किस प्रकार के परीक्षण का उपयोग यह सत्यापित करने के लिए किया जाता है कि किसी एप्लिकेशन के सभी प्रोग्राम एक साथ ठीक से काम करते हैं
#include #include using namespace std; int main () { char data(100); // opening a file in write mode. ofstream myfile; myfile.open('E:\message.txt'); cout << 'Writing to the file' << endl; cout << 'Enter your name: '; cin.getline(data, 100); myfile << data << endl; cout <> data; cin.ignore(); myfile << data << endl; // close the opened file. myfile.close(); // opening a file in read mode. ifstream infile; infile.open('E:\message.txt'); cout << 'Reading from a file' <> data; cout << data <> data; cout << data << endl; infile.close(); return 0; }
आउटपुट:
फाइल पर लिखना
अपना नाम दर्ज करें: वेद
अपनी आयु दर्ज करें: 7
एक फ़ाइल से पढ़ना
द्वारा
।
उपरोक्त कार्यक्रम में सबसे पहले, हम राइट मोड में एक फाइल खोलते हैं। फिर हम डेटा यानि नाम और उम्र पढ़ते हैं और उसे फाइल में लिखते हैं। हम फिर इस फाइल को बंद कर देते हैं। अगला, हम एक ही फाइल को रीड मोड में खोलते हैं और फाइल से लाइन द्वारा डेटा लाइन पढ़ते हैं और इसे स्क्रीन पर आउटपुट करते हैं।
इस प्रकार यह प्रोग्राम सभी फाइल I / O ऑपरेशन को कवर करता है।
फाइल स्टेट स्लैग
कुछ सदस्य फ़ंक्शन हैं जो फ़ाइल की स्थिति की जांच करने के लिए उपयोग किए जाते हैं। ये सभी कार्य एक बूलियन मान लौटाते हैं।
हमने इन कार्यों को सारणीबद्ध किया है:
समारोह विवरण ईओएफ () यदि फ़ाइल पढ़ते समय फ़ाइल का अंत पहुँच जाता है तो यह सही है। असफल () जब पढ़ने / लिखने के संचालन में विफल रहता है या त्रुटि त्रुटि होती है, तो लौटाता है खराब() यदि फ़ाइल से पढ़ना या लिखना विफल रहता है, तो सही है। अच्छा न() उतने ही मामलों में गलत रिटर्न देता है जिसमें उपरोक्त कार्यों में से कोई भी कॉलिंग सही हो।
जाओ / रखो और अन्य विशेष संचालन
फ़ाइल I / O धाराएँ जो हमने अब तक देखी हैं उनमें एक आंतरिक मिलता है और अन्य I / O धाराओं के समान स्थिति डालती है जैसे Iostream।
कक्षा ifstream में एक आंतरिक प्राप्त स्थिति है जिसमें अगले इनपुट ऑपरेशन में फ़ाइल में पढ़ने के लिए तत्व / चरित्र का स्थान शामिल है। नदी के ऊपर की कक्षा में एक आंतरिक पुट स्थिति होती है जिसमें अगले आउटपुट ऑपरेशन में लिखे जाने वाले तत्व / वर्ण का स्थान होता है।
संयोग से, दोनों में ही स्थिति मिलती है।
इन पदों का उपयोग करके पढ़ने और लिखने की सुविधा के लिए, हमारे पास कुछ सदस्य कार्य हैं जिनका उपयोग इन पदों को देखने और संशोधित करने के लिए किया जाता है।
ये कार्य नीचे सूचीबद्ध हैं:
कार्यों विवरण टेल्ग () पॉइंटर पाने की वर्तमान स्थिति लौटाता है गप्पी () पुट पॉइंटर की वर्तमान स्थिति लौटाता है तलाश (स्थिति) मूव्स फ़ाइल की शुरुआत से निर्दिष्ट स्थान की गिनती के लिए एक पॉइंटर प्राप्त करते हैं तलाश (ऑफसेट, दिशा) मूवर्स को पैरामीटर दिशा द्वारा दिए गए बिंदु के सापेक्ष मूल्य को ऑफसेट करने के लिए एक संकेतक मिलता है। तलाश (स्थिति) मूव्स फ़ाइल की शुरुआत से निर्दिष्ट स्थान की गिनती के लिए एक पॉइंटर डालते हैं तलाश (ऑफसेट, दिशा) मूवर्स पैरामीटर दिशा द्वारा दिए गए बिंदु के सापेक्ष मूल्य को ऑफसेट करने के लिए एक संकेतक डालते हैं।
पैरामीटर दिशा उपरोक्त फ़ंक्शन प्रोटोटाइप में दिया गया है a enumerated प्रकार का प्रकार साकिर और यह उस बिंदु को निर्धारित करता है जिससे ऑफसेट की गणना की जाती है।
इसके निम्न मूल्य हो सकते हैं।
ios :: भीख धारा की शुरुआत से परेशान ios :: कर वर्तमान स्थिति से परेशान ios :: अंत धारा के अंत से परेशान
आइए हम एक पूर्ण उदाहरण देखें जो इन कार्यों के उपयोग को प्रदर्शित करता है।
#include #include using namespace std; int main() { fstream myfile; myfile.open('E:\myfile.txt',ios::out); if(!myfile) { cout<<'Cannot create File...'; } else { cout<<'New file created'< आउटपुट:
नई फ़ाइल बनाई गई
प्रारंभिक फ़ाइल सूचक स्थिति: 34 पर
तलाश के बाद (-1, ios :: cur), फ़ाइल पॉइंटर पोजिशन: 33 पर
विंडोज़ के लिए मुफ्त डीवीडी तेजस्वी सॉफ्टवेयर
तलाश के बाद (5, ios :: beg), फाइल पॉइंटर at: 5
तलाश के बाद (1, ios :: cur), फाइल पॉइंटर at: 6

जैसा कि उपरोक्त कार्यक्रम में दिखाया गया है, हमारे पास एक फाइल बनाई गई है जिसमें हम टेक्स्ट की एक पंक्ति लिखते हैं। फिर ऊपर वर्णित विभिन्न कार्यों का उपयोग करके, हम फ़ाइल पॉइंटर के विभिन्न पदों को प्रदर्शित करते हैं।
निष्कर्ष
इस ट्यूटोरियल में, हमने फ़ाइल से डेटा को खोलने, बंद करने और पढ़ने / लिखने के लिए विभिन्न फ़ाइल संचालन को देखा है।
हमने फ़ाइल में विशिष्ट पदों तक पहुंचने के लिए फ़ाइल पॉइंटर को बदलने के कार्यों को भी देखा है। हमारे बाद के ट्यूटोरियल में, हम C ++ से संबंधित कुछ और महत्वपूर्ण विषयों पर चर्चा करेंगे।
=> आसान सी ++ प्रशिक्षण श्रृंखला के माध्यम से पढ़ें।
अनुशंसित पाठ
- C ++ में बेसिक इनपुट / आउटपुट ऑपरेशंस
- पायथन में इनपुट-आउटपुट और फाइलें (पायथन ओपन, पढ़ें और फाइल में लिखें)
- जावा में मूल I / O संचालन (इनपुट / आउटपुट स्ट्रीम)
- यूनिक्स में फाइल मैनिपुलेशन: यूनिक्स फाइल सिस्टम का अवलोकन
- फाइल मैनिपुलेशन के लिए यूनिक्स स्पेशल कैरेक्टर या मेटाचैकर्स
- यूनिक्स फ़ाइल एक्सेस अनुमतियाँ: यूनिक्स चामोड, चाउन और चेंग
- VBScript फ़ाइल ऑब्जेक्ट्स: CopyFile, DeleteFile, OpenTextFile, पाठ फ़ाइल पढ़ें और लिखें
- जावा परिनियोजन: जावा जार फ़ाइल का निर्माण और निष्पादन