C++ File Handling | Text and Binary Files, File Streams, File Pointers
This complete tutorial on C++ File Handling explains how to read from and write to text and binary files using file streams. It also covers file pointer positioning and best practices for safe and efficient file operations in C++.
File Handling – Complete Tutorial
1. What is File Handling?
File handling allows programs to store data persistently in files.
- Two main file types: text files and binary files
- Uses fstream library:
ifstream,ofstream,fstream
2. File Streams
- ifstream – input file stream (read files)
- ofstream – output file stream (write files)
- fstream – read/write files
Example:
3. Text File Operations
Writing to a text file:
Reading from a text file:
4. Binary File Operations
Binary files store data in raw format, suitable for objects or complex data.
Writing binary data:
Reading binary data:
5. File Pointer Positioning
File streams maintain pointers to current read/write positions.
Functions:
seekg()– move get pointer (read)seekp()– move put pointer (write)tellg()– get current read positiontellp()– get current write position
Example:
Best Practices
- Always close file streams after operations
- Check file open status with
is_open() - Use binary mode for non-text data
- Use RAII style (
fstreamobject closes automatically at scope end) - Avoid mixing read/write without proper positioning
Common Mistakes
- Forgetting
ios::binaryfor binary files - Not checking if file opened successfully
- Using
seekg/seekpincorrectly - Mixing
ofstreamandifstreamfor same file withoutfstream
Summary
In this chapter, you learned about C++ File Handling, including:
- File streams (
ifstream,ofstream,fstream) - Reading and writing text and binary files
- File pointer positioning (
seekg,seekp,tellg,tellp) - Best practices and common mistakes
File handling is essential for persistent data storage, logging, and reading/writing structured data in C++ programs.