ASK A QUESTION

    File Handling in Hindi

in Hindi - File Handling



  • File Handling में data को secondary storage device(Hard disk) में permanently store किया जाता है |
  • File Handling को open, close, read, write के लिए इस्तेमाल किया जाता है |

इससे पहले cin और cout इन दोनों object के लिए iostream.h का इस्तेमाल करते आये है | जब iostream इस header file का इस्तेमाल नहीं करते तो , istream class का cin और ostream class का cout को कोई किम्मत नहीं रहती | वैसे ही File Handling के लिए भी है |

C++ में File Handling एक ऐसा topic है जिसको अलग header file को दिया है, उसका नाम है fstream |

File Handling का इस्तेमाल क्यों करते है ?

Program में cin और cout ये थोड़े समय के लिए ही memory को store करके रखता है यानी कि, Program जब Programmer बंद करता है, तब program का सारा data destroy हो जाता है | Program में data store करने के Programmer कुछ variables, arrays, structures, unions का इस्तेमाल करता है, पर ये data permanantly store नहीं होता | इसे permanantly store करने के लिए ही File Handling का इस्तेमाल होता है | File Handling के दरम्यान create हुई files चाहे वो अलग-अलग types(.txt, .doc etc.) की हो वो portable होती है | दूसरे Computer में भी वो इस्तेमाल होती है |

अन्ततः File Handling के लिए fstream इस header file का इस्तेमाल करना पड़ता है |

fstream इस header file में तीन classes आते है |

  1. ifstream
  2. ofstream
  3. fstream

ifstream : ifstream का इस्तेमाल file को read करने के लिए किया जाता है |

ofstream : ifstream का इस्तेमाल file को write करने के लिए किया जाता है |

fstream : fstream का इस्तेमाल file को read और write करने के लिए किया जाता है |

fstream class में दो ifstream और ofstream ये दो classes होते है |

अगर file को read करना हो तो, ifstream की जरुरत पड़ेगी और file पर data को write करने हो तो, ofstream की जरुरत पड़ेगी |

लेकिन file को किस mode पे Open करना है ये समझ लेना चाहिए |


File के सात modes बनाए गए है |

ModesType of StreamDescription
ios::inifstreamread mode पर file को Open किया जाता है |
ios::outofstreamwrite mode पर file को Open किया जाता है |
ios::binaryifstream
ofstream
Binary file को open किया जाता है | अगर file को कोई extension ना दिया जाए तो default .txt mode पे file Open होती है |
ios::ateifstream
ofstream
end-of-file पर data को जोड़ा जाता है और file के पूरे data को existing data के साथ control किया जाता है |
ios::appofstreamend-of-file पर data को append किया जाता है | मतलब data को जोड़ने के लिए इसका इस्तेमाल होता है |
ios::truncofstreamFile में से data को मिटाया जाता है |
ios::nocreateofstreamFile पहले से ही exist ना हो तो open function fail हो जाता है और file create भी नहीं होती |
ios::noreplaceofstreamFile पहले से ही exist हो तो open function fail हो जाता है और new file create भी नहीं होती |

 

अगर stream class 'ifstream' इस्तेमाल किया जाए तो file default ios::in(read) mode पर open होती है |

अगर stream class 'ofstream' इस्तेमाल किया जाए तो file default ios::out(write) mode पर open होती है |

Opening File

Syntax For Opening File
stream-class stream-object;
stream-object.open("file_name"); 

for eg.
ofstream  fout;      // create stream
fout.open("sample.txt");  // default mode is ios::out

File को open करने के लिए Bitwise OR Operator(|) के साथ एक से ज्यादा modes भी इस्तेमाल किये जाते है |

for eg.
fstream fout;
fout.open("sample.txt", ios::in|ios::out);

Closing File

File जब open होती है , तब उसे close भी करना पड़ता है | जब file close की जाती है, तब file जो memory allocate करता उसे free कर दिया जाता है |

Syntax For Closing File
stream-object.close(); 
for eg.
fout.close(); 

Check File Open or not!

जब file open होती है तो, उसे जाँचना पड़ता है कि वो file open हुई है या नहीं | इसके लिए is_open() या fail() इन member functions का इस्तेमाल किया जाता है |

is_open() और fail ये दोनों member function boolean values return करते है |

Source Code :
#include <iostream.h>
#include <fstream.h>
using namespace std;

int main(){

ifstream fout;

fout.open("sample.txt");

if(fout.is_open()){       // or if(!fout.fail()){
    cout<<"File is Opened."<<endl;
}else{
    cout<<"Unable to open file."<<endl;
}
fout.close();

return 0;
}
Output:
File is Opened.

Read Data from a File

निचे दिया हुआ program File को read करने के लिए लिया है |

वहा पर character data type का एक variable लिया है, जिसमे file के data को store करने के लिए लिया है |

ifstream के stream-object का नाम fout लिया है और बाद में file को open किया है | पर open member function में mode के लिए कोई argument नहीं लिया , इसका कारण ये है कि, अगर istream class का इस्तेमाल किया जाए तो ios::in वहा पर पहले से ही स्थित(default) होता है |

बाद में file open हुई है या नहीं हुई है ये condition के द्वारा check किया गया है | अगर file open हुई है, तो Program continue होता है और अगर file open नहीं होती तो, Program exit()(stdlib.h) इस function के द्वारा terminate किया जाएगा |

बाद में while loop के द्वारा file end-of-file तक पहुंची है या नहीं पहुंची ये check करने के लिए इस्तेमाल किया गया है |

sample.txt
Hello World!
Source Code :
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
using namespace std;

int main(){

char ch[30];

ifstream fout;
fout.open("sample.txt") ;

if(!fout){
    cout<<"Unable to opened file!";
    exit(1);     //Program terminate if file is not opened.
}
    cout<<"File Contents : ";

while(!fout.eof()){

    fout>>ch;
    cout<<ch<<" ";
}
fout.close();

return 0;
}
Output :
File Contents : Hello World!

Write data on a File

#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
using namespace std;

int main(){

ofstream fout;
fout.open("sample.txt") ;

if(!fout){
    cout<<"Unable to opened file!";
    exit(1);     //Program terminate if file is not opened.
}

    fout<<"Hello Friends!";

fout.close();

return 0;
}
Output:
sample.txt
Hello Friends!

get() Member Function

Syntax for get() for File Handling
stream-object_of_ifstream_class.get(char ch);   or 
char ch = stream-object_of_ifstream_class.get();
Syntax for get() for Console
cin.get(char ch);  or
char ch = cin.get();

get() memeber function से single character को input किया जाता है |

get() function istream class में define होता है | इसका मतलब ये function इस्तेमाल करने के लिए iostream इस header file को include करना पड़ता है |

get() unformatted stream IO functions है |

get() function data को read करने के लिए इस्तेमाल किया जाता है |

cin>>ch और cin.get(ch); में फर्क क्या है ?

cin>>ch; ये newline और whitespace लेता नहीं है |

cin.get; ये newline और whitespaces को लेता है |

get() Example

#include <iostream.h>
#include <fstream.h>
using namespace std;

int main(){

char ch;
    cout<<"Enter one character : ";
    cin.get(ch);
    cout<<"Entered character : ";
    cout<<ch;
return 0;
}

Output:
Enter one character : o
Entered character : o

get() with file

Source Code :
sample.txt
Hello Friends!
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
using namespace std;

int main(){

char ch;

ifstream fin;
fin.open("sample.txt") ;

if(!fin){
    cout<<"Unable to opened file!";
    exit(1);     //Program terminate if file is not opened.
}
	cout<<"File Contents : ";
while(!fin.eof()){

    fin.get(ch);
    cout<<ch;
}
fin.close();

return 0;
}

Output:
File Contents : Hello Friends!

put() Member Function

Syntax for put() for File Handling
stream-object_of_ofstream_class.put(char ch);
Syntax for put() for Console
cout.put(char ch);

put() memeber function से single character को Output किया जाता है |

put() function ostream class में define होता है | इसका मतलब ये function इस्तेमाल करने के लिए iostream इस header file को include करना पड़ता है |

put() unformatted stream IO functions है |

put() function data को write करने के लिए इस्तेमाल किया जाता है |

put() Example

Source Code :
#include <iostream.h>
#include <fstream.h>
using namespace std;

int main(){

char ch='H', c = 65;

    cout<<"Value of ch : ";
    cout.put(ch)<<endl;

    cout<<"Value of c : ";
    cout.put(c);      // ASCII value of a is 65

return 0;
}
Output:
Value of ch : H
Value of c : A

put() with file

Source Code :
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
using namespace std;

int main(){

char ch='H';

ofstream fout;
fout.open("sample.txt") ;

if(!fout){
    cout<<"Unable to opened file!";
    exit(1);     //Program terminate if file is not opened.
}
    fout.put(ch);

fout.close();

return 0;
}
Output: sample.txt
H

write() Member Function

Syntax for write() for File Handling
stream-object_of_ofstream_class.write(line_or_string, stream_size);
Syntax for write() for Console
cout.write(line_or_string, stream_size);
Concatenate write() function with dot operator
cout.write(line_or_string, stream_size).write(line_or_string, stream_size);

write() function ये output function है, जो line को display करता है |

write() function ये ostream class का member function है |

write() function के लिए दो arguments होते है |

  1. line_or_string : ये character type का array होता है |
  2. stream_size : Line से कितने characters लेना है ये यहाँ पर लिखा जाता है | अगर stream_size ज्यादा हुई तो whitespaces भी लिए जाते है |

write() Example

Source Code :
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
using namespace std;

int main(){

char ch[12] = "Hello World!";

    cout.write(ch, 12);

return 0;
}
Output: sample.txt
Hello World!

write() with file

Source Code :
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
using namespace std;

int main(){

char ch[12] = "Hello World!";

ofstream fout;
fout.open("sample.txt") ;

if(!fout){
    cout<<"Unable to opened file!";
    exit(1);     //Program terminate if file is not opened.
}
    fout.write(ch, 12);

fout.close();

return 0;
}
Output: sample.txt
Hello World!

getline() Member Function

Syntax for getline() for File Handling
stream-object_of_ifstream_class.getline(line_or_string, stream_size);
Syntax for getline() for Console
cin.getline(line_or_string, stream_size);

getline() function ये input function है, जो line को keyboard से input करता है |

getline() function ये istream class का member function है |

getline() function के string के आखिर में NULL character(\0) होता है |

getline() Example

sample.txt
Hello World!
Source Code :
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
using namespace std;

int main(){

char ch[12];
    cout<<"Enter String : ";
    cin.getline(ch, 12);
    cout<<"Entered String : "<<ch;

return 0;
}
Output:
Enter String : Hello World!
Entered String : Hello World

getline() with file

sample.txt
Hello World!
Source Code :
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
using namespace std;

int main(){

char ch[12];

ifstream fin;
fin.open("sample.txt") ;

if(!fin){
    cout<<"Unable to opened file!";
    exit(1);     //Program terminate if file is not opened.
}
    fin.getline(ch, 12);
    cout<<ch;

fin.close();

return 0;
}

Output:
Hello World