Files Files Stream is a sequence of bytes

  • Slides: 23
Download presentation
Files

Files

Files Stream is a sequence of bytes Input stream In input operations, the bytes

Files 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…) 2

Files Stream C++ contains different pre defined stream that automatically opened when a program

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) 3

Files • Opening and Closing a File • In C++, to open a file

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 4

Files A file can be opened in two ways 1) Using constructor function 2)

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 5

Files File opening using constructor Constructor -> used to initialized an object. Here filename

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 6

Files ofstream o (“popo. txt”); This create o as an ofstream object, to manage

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”); 7

Files To close the file o. close(); i. close(); 8

Files To close the file o. close(); i. close(); 8

File opening using constructor #include<iostream. h> #include<conio. h> #include<fstream. h> void main() { ofstream

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(); ifstream i("popo. txt"); i>>name; cout<<name; i. close(); } Files 9

Files 2) Using the member function open() Open() fun is used to open multiple

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(); 10

Files getline( ) Function that performs input is getline(). It is a member of

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. • • 11

#include<conio. h> #include<iostream. h> #include<fstream. h> void main() { ofstream fout; fout. open("popo. txt");

#include<conio. h> #include<iostream. h> #include<fstream. h> 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"); 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(); 12

Files Copy one file to another #include<conio. h> #include<iostream. h> #include<fstream. h> void main()

Files Copy one file to another #include<conio. h> #include<iostream. h> #include<fstream. h> 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(); } 13

Files The open() function to create new file/ open existing file Open() fun can

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 14

Files Parameter Meaning iios: : app Append to EOF iios: : ate goto EOF

Files Parameter Meaning iios: : app Append to EOF iios: : ate goto EOF on opening iios: : binary Binary file iios: : in open file for reading only iios: : out open file for writing only ios: : trunc delete the contents of the file if it exist iios: : nocreate open fails if the file does not exist iios: : noreplace open fails if the file already exist • ofstream out; • out. open("test", ios: : out); 15

Files File pointers Each files having 2 pointers 1) Input pointer (get pointer) 2)

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 16

Files When a file open in read mode get pointer points to BOF When

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 17

Files Seekg() Seekp() Tellg() Tellp() Moves get pointer to a specified location Moves put

Files Seekg() Seekp() Tellg() Tellp() Moves get pointer to a specified location Moves put pointer to a specified location Gives the current position of get pointer Gives the current position of put pointer Ofstream fout; Fout. open(“check. txt”, ios: : app); Cout<<“put pointer position”<<fout. tellp(); Seekg()& Seekp() Seekg(offset, position); Seekp(offset, position); 18

Files Offset no of bytes to move Position takes 3 values ios: : beg

Files Offset no of bytes to move Position takes 3 values ios: : beg ios: : cur ios: : end from BOF From current position From EOF 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 19

#include<conio. h> #include<iostream. h> #include<fstream. h> void main() { ofstream fout; ifstream fin; fout.

#include<conio. h> #include<iostream. h> #include<fstream. h> 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(); } Files Seekg() 20

Files put( ) and get( ) • get() willread a character and • put()

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); • 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(); • } 21

Files Read() and write() For reading and writing block of data Syn Infile. read((char

Files Read() and write() For reading and writing block of data Syn Infile. read((char *) & v, sizeof(v)); outfile. write((char *) & v, sizeof(v)); 22

#include<conio. h> #include<iostream. h> #include<fstream. h> class check { char name[20]; int m 1,

#include<conio. h> #include<iostream. h> #include<fstream. h> class check { char name[20]; int m 1, m 2, m 3, tot; public: void getdata() { cout<<"Enter name and 3 marks"; cin>>name>>m 1>>m 2>>m 3; tot=m 1+m 2+m 3; } void putdata() { cout<<"n"<<name<<" "<<m 1<<" "<<m 2<<" "<<m 3; } }; Files void main() { clrscr(); check c[20]; int i, 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(); } 23