You are here:

C++/Input\Output files


I want to read data from a file, store it into an array, and then display it on the screen.

After doing that, I need to write a line to the end of the file that I have read the data from.

I did the first part. But I couldn't complete the second one. I used different modes when opening the file, but the problem is that the data in the file is being erased after writing to the file.

Can you please help me!

Hello AHR

When you read through the entire file, to the end, there is an error bit set to indicate the end of file. While that bit is set, no further operations can be done until the bit is cleared. Here is a sample program for opening a file, reading from it, and then finally appending a line. I hope that helps.

Best regards

#include <fstream>
#include <iostream>
#include <string>

using namespace std;

int main(void)
   fstream fs("test.txt", ios::in | ios::out);
   // check if file was found
   if (!fs.good())
       // if not found, create it."test.txt", ios::in | ios::out | ios::trunc);

   // check for successful opening of file.
   if (fs.good())

       string s;
       // get all lines in the file
       while( ! fs.eof())
         getline(fs, s);
         cout << s << endl;

       // clear the end-of-file error bit

       // append a line to the file
       fs << "abc" << endl;

       // file would close automatically when the
       // fs destructor executes, but we can close it here manually
       cout << "Cannot open or create the file\n";


All Answers

Answers by Expert:

Ask Experts




No longer taking questions.


No longer taking questions.

No longer taking questions.

©2017 All rights reserved.