Files in C++
Files are used to store data permanently in a storage device. In C++, you can work with files to read data from them, write data to them, or perform various file operations. To work with files in C++, you typically use the fstream library, which provides classes for creating files, reading input from files and writing output to files. The fstream library is provided with three classes:
- ofstream: This class represents an output file stream. It is used for creating files and writing information to files.
- ifstream: This class represents an input file stream. It is used for reading information from data files.
- fstream: This class represents both ofstream and ifstream. It provides the capability of creating, reading, and writing to a file.
Here's how to work with files in C++:
- Include header:
- Opening a File:
- Reading from a File:
- Writing to a File:
- Closing a File:
To work with files, you first need to include the
#include <fstream>
To perform any operation on a file, first you need to open it by creating an instance of ifstream for reading or ofstream for writing and open the file using the open() method as shown in the example below:
// For reading from a file
ifstream inputFile;
inputFile.open("input.txt");
// For writing to a file (creates a new file if it doesn't exist)
ofstream outputFile;
outputFile.open("output.txt");
You can also specify the mode when opening files, such as ios::in for input and ios::out for output. Here is a list of different modes that you can use to open a file:
Mode | Description |
iso::in | Opens a file in reading mode. |
iso::out | Opens a file in writing mode. |
iso::app | Opens a file in append mode. |
iso::ate | Opens a file in append mode but read and write is performed at the end of the file. |
iso::binary | Opens a file in binary mode. |
iso::trunc | opens a file in truncate mode. |
iso::nocreate | Opens a file only if the file exists. |
iso::noreplace | Opens a file only if the file doesn't exist. |
Here is the syntax for opening a file using the mode option:
open('filename', 'mode');
To read data from files, you can use the >> stream extraction operator. For example:
char c; input_file >> c;
To write data to a file, you can use the << stream insertion operator. The text written to the file should be enclosed within the double-quotes. For example:
output_file <<"Hello!, this will be written to the file." << endl;
When you are done with your input and output operations on a file, you should close the file using the close() function. For example:
input_file.close();
output_file.close();
Here's a complete example of a Python program that reads from one file and writes to another:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream inputFile;
inputFile.open("input.txt", ios::in);
ofstream outputFile;
outputFile.open("output.txt", ios::out);
if (inputFile.is_open() && outputFile.is_open()) {
int number;
while (inputFile >> number) {
outputFile << "Squared: " << number * number << endl;
}
inputFile.close();
outputFile.close();
} else {
cout << "Failed to open one or both files." << endl;
}
return 0;
}
In this example, you will find the use of is_open() method to handle errors. It's a good practice to develop the habit of checking for errors while opening or performing operations on files. You can use the is_open() function to verify whether the file was successfully opened and handle errors accordingly.