Download presentation
Presentation is loading. Please wait.
Published byBenjamin Hall Modified over 9 years ago
1
Files
2
2 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…)
3
3 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)
4
4 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 fstream io; // input and output
5
5 Files A file can be opened in two ways 1)Using constructor function 2)Using the member function open() First method is useful when we se only one file Second method used to manage multiple files
6
6 Files File opening using constructor Constructor -> used to initialized an object. Here filename is used to initialize the file stream This can be done 1)Create a file stream object to manage the stream (ie ofstream or from ifstream) 2)Initialize the file object with filename Eg: ofstream o (“popo.txt”); open a file named popo.txt for output
7
7 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 Ifstream i(“popo.txt”);
8
8 Files To close the file o.close(); i.close();
9
9 Files File opening using constructor #include void main() { ofstream o("popo.txt"); cout<<"Enter"; char name[20]; cin>>name; o<<name; o.close(); ifstream i("popo.txt"); i>>name; cout<<name; i.close(); }
10
10 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 Ofstream outfile; Outfile.open(“popo.txt”); Outfile.close(); Outfile.open(“check.txt”); Outfile.close();
11
11 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.
12
12 Files #include void main() { ofstream fout; 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"); 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(); }
13
13 Files Copy one file to another #include void main() { ofstream fout; ifstream fin; fout.open("popo.txt"); char s[20]; int i; for(i=1;i<=10;i++) { fout<<"popo"<<i<<"\n"; } 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(); }
14
14 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
15
15 Files ofstream out; out.open("test", ios::out); ParameterMeaning iios::appAppend to EOF iios::ategoto EOF on opening iios::binaryBinary file iios::inopen file for reading only iios::outopen file for writing only ios::truncdelete the contents of the file if it exist iios::nocreateopen fails if the file does not exist iios::noreplaceopen fails if the file already exist
16
16 Files File pointers Each files having 2 pointers 1)Input pointer (get pointer) 2)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
17
17 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
18
18 Files Ofstream fout; Fout.open(“check.txt”,ios::app); Cout<<“put pointer position”<<fout.tellp(); Seekg()& Seekp() Seekg()Moves get pointer to a specified location Seekp()Moves put pointer to a specified location Tellg()Gives the current position of get pointer Tellp()Gives the current position of put pointer Seekg(offset,position); Seekp(offset,position);
19
19 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 ios::begfrom BOF ios::curFrom current position ios::endFrom EOF
20
20 Files Seekg() #include void main() { ofstream fout; ifstream fin; fout.open("popo.txt",ios::out); char s[20]; int i; 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(); }
21
21 Files put( ) and get( ) get() willread a character and put() will write a character. #include void main() { fstream file; file.open("p.txt",ios::out|ios::in); int i;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(); }
22
22 Files Read() and write() For reading and writing block of data Syn Infile.read((char *) & v,sizeof(v)); outfile.write((char *) & v,sizeof(v));
23
23 Files #include 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; } }; void main() { clrscr(); check c[20]; int i,n; cout >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(); }
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.