230 likes | 381 Views
Files. Files. Stream Stream is a sequence of bytes Input stream In input operations, the bytes are transferred from a device to the main memory Output stream The bytes are transferred from main memory to a device such as (display screen, printer, disk, n/w…). Files. Stream
E N D
Files Stream Stream is a sequence of bytes Input stream In input operations, the bytes are transferred from a device to the main memory Output stream The bytes are transferred from main memory to a device such as (display screen, printer, disk, n/w…)
Files Stream C++ contains different pre defined stream that automatically opened when a program begins its execution. Such as cin, cout …. Cin represents input stream connect to input devices (object of istream) Cout represents output stream connect to output devices (object of ostream)
Files • Opening and Closing a File • In C++, to open a file by linking it to a stream. • There are three types of streams: input, output, and input/output. • To create an input stream, declare the stream to be of class ifstream. • To create an output stream, declare it as class ofstream. • Streams that will be performing both input and output operations must be declared as class fstream. • For example, this fragment creates one input stream, one output stream, and one stream capable of both input and output: • ifstream in; // input • ofstream out; // output • fstreamio; // input and output
Files A file can be opened in two ways • Using constructor function • Using the member function open() First method is useful when we se only one file Second method used to manage multiple files
Files File opening using constructor Constructor -> used to initialized an object. Here filename is used to initialize the file stream This can be done • Create a file stream object to manage the stream (ieofstream or from ifstream) • Initialize the file object with filename Eg: ofstream o (“popo.txt”); open a file named popo.txt for output
Files ofstream o (“popo.txt”); This create o as an ofstream object, to manage output stream. This statement opene the file popo.txt an attaches to output stream Input stream example Ifstreami(“popo.txt”);
Files To close the file o.close(); i.close();
Files File opening using constructor #include<iostream.h> #include<conio.h> #include<fstream.h> void main() { ofstream o("popo.txt"); cout<<"Enter"; char name[20]; cin>>name; o<<name; o.close(); ifstreami("popo.txt"); i>>name; cout<<name; i.close(); }
Files 2) Using the member function open() Open() fun is used to open multiple files Syn File_stream_class stream object; Stream object.open(“file name”); Eg Ofstreamoutfile; Outfile.open(“popo.txt”); Outfile.close(); Outfile.open(“check.txt”); Outfile.close();
Files • getline( ) • Function that performs input is getline() . • It is a member of each input stream class. • getline(char array, streamsize num); • getline(char array, streamsize num, char delim); • The first form reads characters into the array • characters have been read, a newline character has been found, or the end of the file has been encountered. • The second form reads characters into the array • the character specified by delim has been found, or the end of the file has been encountered. • If the delimiter character is encountered in the input stream, it is extracted, but is not put into array.
Files char s[20]; while(!fin.eof()) { fin.getline(s,20); cout<<s<<"\n"; } fin.close(); fin.open(“check.txt"); while(!fin.eof()) { fin.getline(s,20); cout<<s<<"\n"; } fin.close(); getch(); } #include<conio.h> #include<iostream.h> #include<fstream.h> void main() { ofstreamfout; fout.open("popo.txt"); fout<<"popo"; fout<<"peepe"; fout.close(); fout.open("check.txt"); fout<<"looky"; fout<<"zappy"; fout.close(); ifstream fin; fin.open("popo.txt");
Files Copy one file to another fout.close(); fout.open("check.txt"); fin.open("popo.txt"); while(!fin.eof()) { fin.getline(s,20); fout<<s<<"\n"; } fin.close(); fout.close(); getch(); } #include<conio.h> #include<iostream.h> #include<fstream.h> void main() { ofstreamfout; ifstream fin; fout.open("popo.txt"); char s[20]; inti; for(i=1;i<=10;i++) { fout<<"popo"<<i<<"\n"; }
Files The open() function to create new file/ open existing file Open() fun can take two arguments file name and file mode Open(“filename”,mode); • filename is the name of the file; it can include a path specifier. • The value of mode determines how the file is opened. • It must be one or more of the following • ios::app • ios::ate • ios::binary • ios::in • ios::out • ios::trunc combine two or more of these values by ORing them together
Files • ofstream out; • out.open("test", ios::out);
Files File pointers Each files having 2 pointers • Input pointer (get pointer) • Output pointer (put pointer) Get pointer used to reading contents of given file location Output pointer for writing to a given file location Both pointer increments automatically while reading and writing
Files When a file open in read mode get pointer points to BOF When a file open in write mode put pointer points to BOF and delete existing contents When a file open in append mode put pointer points to the EOF The file stream class support different functions to control the movements of the get and put pointers
Files Ofstreamfout; Fout.open(“check.txt”,ios::app); Cout<<“put pointer position”<<fout.tellp(); Seekg()& Seekp()
Files Offset no of bytes to move Position takes 3 values Eg: fout.seekg(0,ios::beg);Goto Start Fout.seekg(2,ios::cur);move 2 bytes forward from current position Fout.seekg(-2,ios::end);move 2 bytes backword from EOF
Files Seekg() #include<conio.h> #include<iostream.h> #include<fstream.h> void main() { ofstreamfout; ifstream fin; fout.open("popo.txt",ios::out); char s[20]; inti; for(i=1;i<=10;i++) fout<<"popo"<<i<<"\n"; fout.close(); fin.open("popo.txt",ios::in); while(!fin.eof()) { fin.seekg(2,ios::cur); fin.getline(s,20); cout<<s<<"\n"; } fin.close(); getch(); }
Files put( ) and get( ) • get() willread a character and • put() will write a character. • #include<conio.h> • #include<iostream.h> • #include<fstream.h> • void main() • { • fstream file; • file.open("p.txt",ios::out|ios::in); • inti;char s[20]="popo and peepe",c; • for(i=0;i<=10;i++) • file.put(s[i]); • file.seekg(0,ios::beg); • while(!file.eof()) • { file.get(c); • cout<<c; • } • file.close(); • getch(); • }
Files Read() and write() For reading and writing block of data Syn Infile.read((char *) & v,sizeof(v)); outfile.write((char *) & v,sizeof(v));
Files void main() { clrscr(); check c[20]; inti,n; cout<<"enter limit ";cin>>n; fstream file("popo.txt",ios::in|ios::out); for(i=0;i<n;i++) { c[i].getdata(); file.write((char*)& c[i],sizeof(c[i])); } file.seekg(0,ios::beg); for(i=0;i<n;i++) { file.read((char *) & c[i],sizeof(c[i])); c[i].putdata(); } file.close(); getch(); } #include<conio.h> #include<iostream.h> #include<fstream.h> class check { char name[20]; int m1,m2,m3,tot; public: void getdata() { cout<<"Enter name and 3 marks"; cin>>name>>m1>>m2>>m3; tot=m1+m2+m3; } void putdata() { cout<<"\n"<<name<<" "<<m1<<" "<<m2<<" "<<m3; } };