File handling in C++ is essential for working with external data sources, such as reading data from files and writing data to files. C++ provides a set of file stream classes that make file I/O operations straightforward. In this guide, we'll explore the basics of file handling in C++.


Writing to a File

You can use the ofstream class to write data to a file. Here's how to write text to a file:


#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream outFile(`output.txt`); if (outFile.is_open()) {
outFile << `Hello, World!` << endl;
outFile.close();
cout << `Data written to the file.` << endl;
} else {
cerr << `Error: Unable to open the file.` << endl;
} return 0;
}

In this example, we create an ofstream object, open the file `output.txt,` write data to it, and then close the file. If the file doesn't exist, it will be created.


Reading from a File

You can use the ifstream class to read data from a file. Here's how to read text from a file:


#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream inFile(`input.txt`); if (inFile.is_open()) {
string line;
while (getline(inFile, line)) {
cout << line << endl;
}
inFile.close();
} else {
cerr << `Error: Unable to open the file.` << endl;
} return 0;
}

In this example, we create an ifstream object, open the file `input.txt,` and read its content line by line, displaying it to the console.


Appending to a File

You can use the ofstream class in append mode to add content to an existing file without overwriting its existing content:


#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream outFile(`output.txt`, ios::app); if (outFile.is_open()) {
outFile << `Appending text to the file.` << endl;
outFile.close();
cout << `Data appended to the file.` << endl;
} else {
cerr << `Error: Unable to open the file.` << endl;
} return 0;
}

In this example, we open the file `output.txt` in append mode using the ios::app flag and then append new content to it.


Conclusion

File handling is an important part of C++ programming, enabling you to work with external data sources. As you continue your C++ journey, you'll explore more advanced file handling techniques, such as binary file I/O and error handling.