0% found this document useful (0 votes)
67 views

C++ Files and Streams

Uploaded by

Mohamed K Marah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views

C++ Files and Streams

Uploaded by

Mohamed K Marah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

7/30/2018 C++ Files and Streams

C++ Files and Streams
Advertisements

 Previous Page Next Page  

So far, we have been using the iostream standard library, which provides cin and
cout  methods  for  reading  from  standard  input  and  writing  to  standard  output
respectively.

This tutorial will teach you how to read and write from a file. This requires another
standard C++ library called fstream, which defines three new data types −

Sr.No Data Type & Description

ofstream

1 This  data  type  represents  the  output  file  stream  and  is  used  to  create
files and to write information to files.

ifstream

2 This  data  type  represents  the  input  file  stream  and  is  used  to  read
information from files.

fstream

This  data  type  represents  the  file  stream  generally,  and  has  the
3
capabilities  of  both  ofstream  and  ifstream  which  means  it  can  create
files, write information to files, and read information from files.

To  perform  file  processing  in  C++,  header  files  <iostream>  and  <fstream>  must
be included in your C++ source file.

Opening a File
A file must be opened before you can read from it or write to it. Either ofstream or
https://www.tutorialspoint.com/cplusplus/cpp_files_streams.htm 1/6
7/30/2018 C++ Files and Streams

fstream object may be used to open a file for writing. And ifstream object is used
to open a file for reading purpose only.

Following is the standard syntax for open() function, which is a member of fstream,
ifstream, and ofstream objects.

void open(const char *filename, ios::openmode mode);

Here,  the  first  argument  specifies  the  name  and  location  of  the  file  to  be  opened
and  the  second  argument  of  the  open()  member  function  defines  the  mode  in
which the file should be opened.

Sr.No Mode Flag & Description

ios::app
1
Append mode. All output to that file to be appended to the end.

ios::ate

2 Open a file for output and move the read/write control to the end of the
file.

ios::in
3
Open a file for reading.

ios::out
4
Open a file for writing.

ios::trunc

5 If the file already exists, its contents will be truncated before opening the
file.

You  can  combine  two  or  more  of  these  values  by  ORing  them  together.  For
example  if  you  want  to  open  a  file  in  write  mode  and  want  to  truncate  it  in  case
that already exists, following will be the syntax −

ofstream outfile;
outfile.open("file.dat", ios::out | ios::trunc );

Similar way, you can open a file for reading and writing purpose as follows −

fstream  afile;
afile.open("file.dat", ios::out | ios::in );

https://www.tutorialspoint.com/cplusplus/cpp_files_streams.htm 2/6
7/30/2018 C++ Files and Streams

Closing a File
When a C++ program terminates it automatically flushes all the streams, release
all  the  allocated  memory  and  close  all  the  opened  files.  But  it  is  always  a  good
practice  that  a  programmer  should  close  all  the  opened  files  before  program
termination.

Following is the standard syntax for close() function, which is a member of fstream,
ifstream, and ofstream objects.

void close();

Writing to a File
While doing C++ programming, you write information to a file from your program
using  the  stream  insertion  operator  (<<)  just  as  you  use  that  operator  to  output
information  to  the  screen.  The  only  difference  is  that  you  use  an  ofstream  or
fstream object instead of the cout object.

Reading from a File
You  read  information  from  a  file  into  your  program  using  the  stream  extraction
operator  (>>)  just  as  you  use  that  operator  to  input  information  from  the
keyboard.  The  only  difference  is  that  you  use  an  ifstream  or  fstream  object
instead of the cin object.

Read and Write Example
Following is the C++ program which opens a file in reading and writing mode. After
writing information entered by the user to a file named afile.dat, the program reads
information from the file and outputs it onto the screen −
 Live Demo
#include <fstream>
#include <iostream>
using namespace std;
 
int main () {
   char data[100];

   // open a file in write mode.
   ofstream outfile;
   outfile.open("afile.dat");

   cout << "Writing to the file" << endl;
   cout << "Enter your name: "; 
   cin.getline(data, 100);

   // write inputted data into the file.

https://www.tutorialspoint.com/cplusplus/cpp_files_streams.htm 3/6
7/30/2018 C++ Files and Streams
   outfile << data << endl;

   cout << "Enter your age: "; 
   cin >> data;
   cin.ignore();
   
   // again write inputted data into the file.
   outfile << data << endl;

   // close the opened file.
   outfile.close();

   // open a file in read mode.
   ifstream infile; 
   infile.open("afile.dat"); 
 
   cout << "Reading from the file" << endl; 
   infile >> data; 

   // write the data at the screen.
   cout << data << endl;
   
   // again read the data from the file and display it.
   infile >> data; 
   cout << data << endl; 

   // close the opened file.
   infile.close();

   return 0;
}

When the above code is compiled and executed, it produces the following sample
input and output −

$./a.out
Writing to the file
Enter your name: Zara
Enter your age: 9
Reading from the file
Zara
9

Above  examples  make  use  of  additional  functions  from  cin  object,  like  getline()
function  to  read  the  line  from  outside  and  ignore()  function  to  ignore  the  extra
characters left by previous read statement.

File Position Pointers
Both  istream  and  ostream  provide  member  functions  for  repositioning  the  file­
position pointer. These member functions are seekg ("seek get") for istream and
seekp ("seek put") for ostream.

The argument to seekg and seekp normally is a long integer. A second argument
https://www.tutorialspoint.com/cplusplus/cpp_files_streams.htm 4/6
7/30/2018 C++ Files and Streams

can be specified to indicate the seek direction. The seek direction can be ios::beg
(the  default)  for  positioning  relative  to  the  beginning  of  a  stream,  ios::cur  for
positioning  relative  to  the  current  position  in  a  stream  or  ios::end  for  positioning
relative to the end of a stream.

The file­position pointer is an integer value that specifies the location in the file as a
number of bytes from the file's starting location. Some examples of positioning the
"get" file­position pointer are −

// position to the nth byte of fileObject (assumes ios::beg)
fileObject.seekg( n );

// position n bytes forward in fileObject
fileObject.seekg( n, ios::cur );

// position n bytes back from end of fileObject
fileObject.seekg( n, ios::end );

// position at end of fileObject
fileObject.seekg( 0, ios::end );

 Previous Page Next Page  

Advertisements

Tutorials Point (India) Pvt. Ltd.

YouTube 193K

https://www.tutorialspoint.com/cplusplus/cpp_files_streams.htm 5/6
7/30/2018 C++ Files and Streams

FAQ's Cookies Policy Contact


© Copyright 2018. All Rights Reserved.

Enter email for newsletter go

https://www.tutorialspoint.com/cplusplus/cpp_files_streams.htm 6/6

You might also like