C++ Tutorial
Class and Object
Reference
Inheritance and Derivation
Polymorphism and Virtual Functions
Operator Overloading
Template
Exception
Object Oriented Advanced
Input/Output Stream
File Operations
In this tutorial, we will learn how to use the get()
and put()
functions in C++ to read and write files. The get()
function is used to read a single character from a file, while the put()
function writes a single character to a file.
Let's demonstrate reading and writing text files using a simple example:
First, include the necessary headers for the program:
#include <iostream> #include <fstream>
put()
:To write data to a text file, use the std::ofstream
class and the put()
function:
void writeData(const char* filename) { std::string text = "Hello, World!"; std::ofstream outputFile(filename); if (outputFile.is_open()) { for (char c : text) { outputFile.put(c); } outputFile.close(); } else { std::cerr << "Unable to open file for writing." << std::endl; } }
In this example, we create a std::string
variable text
and write its content to a text file character by character using the put()
function. The put()
function takes a single character as its parameter and writes it to the file.
get()
:To read data from a text file, use the std::ifstream
class and the get()
function:
void readData(const char* filename) { std::ifstream inputFile(filename); char c; if (inputFile.is_open()) { while (inputFile.get(c)) { std::cout << c; } inputFile.close(); } else { std::cerr << "Unable to open file for reading." << std::endl; } }
In this example, we create a char
variable c
and read the content of a text file character by character using the get()
function. The get()
function reads a single character from the file and stores it in the given variable. If the end of the file is reached or an error occurs, get()
returns false
.
Now, we can use the writeData()
and readData()
functions in the main()
function to write and read text data:
int main() { const char* filename = "example.txt"; writeData(filename); readData(filename); return 0; }
That's it for our tutorial on using the get()
and put()
functions in C++ to read and write files. These functions provide a simple way to handle files at the character level, which can be useful for processing text files, parsing data, or modifying the content of a file.
How to use get() and put() for file I/O in C++:
#include <iostream> #include <fstream> int main() { std::ofstream outputFile("output.txt"); if (!outputFile) { std::cerr << "Error opening file for writing." << std::endl; return 1; } // Writing a character using put() outputFile.put('A'); // Reading a character using get() char ch; std::ifstream inputFile("output.txt"); if (!inputFile) { std::cerr << "Error opening file for reading." << std::endl; return 1; } ch = inputFile.get(); std::cout << "Read character: " << ch << std::endl; outputFile.close(); inputFile.close(); return 0; }
Reading and writing characters with get() and put() in C++: Already demonstrated in the example above. Use put() for writing and get() for reading characters.
Error handling when using get() and put() for file operations in C++: Include checks for file opening and errors during operations, as shown in the examples.
Character manipulation and transformation using get() and put() in C++:
#include <iostream> #include <fstream> #include <cctype> int main() { std::ofstream outputFile("output.txt"); if (!outputFile) { std::cerr << "Error opening file for writing." << std::endl; return 1; } // Writing an uppercase character using put() outputFile.put(std::toupper('a')); // Reading a character using get() and transforming to uppercase char ch; std::ifstream inputFile("output.txt"); if (!inputFile) { std::cerr << "Error opening file for reading." << std::endl; return 1; } ch = std::toupper(inputFile.get()); std::cout << "Read and transformed character: " << ch << std::endl; outputFile.close(); inputFile.close(); return 0; }
Using streambuf and filebuf with get() and put() in C++:
#include <iostream> #include <fstream> int main() { std::filebuf fb; if (fb.open("output.txt", std::ios::out) != nullptr) { std::ostream os(&fb); // Writing a character using put() os.put('A'); fb.close(); } std::filebuf fbRead; if (fbRead.open("output.txt", std::ios::in) != nullptr) { std::istream is(&fbRead); // Reading a character using get() char ch = is.get(); std::cout << "Read character: " << ch << std::endl; fbRead.close(); } return 0; }
Reading and writing lines with get() and put() in C++:
#include <iostream> #include <fstream> int main() { std::ofstream outputFile("output.txt"); if (!outputFile) { std::cerr << "Error opening file for writing." << std::endl; return 1; } // Writing a line using put() outputFile << "Hello, World!" << std::endl; outputFile.close(); // Reading a line using get() std::ifstream inputFile("output.txt"); if (!inputFile) { std::cerr << "Error opening file for reading." << std::endl; return 1; } char buffer[100]; inputFile.getline(buffer, sizeof(buffer)); std::cout << "Read line: " << buffer << std::endl; inputFile.close(); return 0; }
Handling whitespace and newline characters with get() and put() in C++: Shown in the previous examples. You can manipulate characters as needed.
Interactive console input and output with get() and put() in C++:
#include <iostream> int main() { char ch; std::cout << "Enter a character: "; ch = std::cin.get(); std::cout << "You entered: " << ch << std::endl; return 0; }
Character limits and buffer size with get() and put() in C++: You can specify buffer size and handle limits based on your requirements.
Binary file operations with get() and put() in C++:
The examples above are for text-based operations. For binary operations, use std::ios::binary
mode and handle binary data appropriately.