From 44d085f265583f0e3cbef294bbe2c8e300aaa452 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Wed, 3 Apr 2024 17:47:07 +0300 Subject: [w6] Added exercise descriptions and solutions to 1-9 --- week06/Exercise06.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 week06/Exercise06.cpp (limited to 'week06/Exercise06.cpp') diff --git a/week06/Exercise06.cpp b/week06/Exercise06.cpp new file mode 100644 index 0000000..d05f495 --- /dev/null +++ b/week06/Exercise06.cpp @@ -0,0 +1,42 @@ +#include +#include + +int main() { + char fileName1[1024]; + std::cin.getline(fileName1, 1024); + char fileName2[1024]; + std::cin.getline(fileName2, 1024); + + std::fstream file1(fileName1); + if (!file1.is_open()) { + std::cout << "Couldn't open file!" << std::endl; + return 1; + } + + std::ifstream file2(fileName2); + if (!file2.is_open()) { + std::cout << "Couldn't open file!" << std::endl; + return 1; + } + + file1.seekg(0, std::ios::end); + size_t endIndex = file1.tellg(); + size_t middleIndex = endIndex / 2; + size_t latterHalfSize = endIndex - middleIndex; + + file1.seekg(middleIndex, std::ios::beg); + char* buffer = new char[latterHalfSize]; + file1.read(buffer, latterHalfSize); + file1.clear(); + + file1.seekp(middleIndex, std::ios::beg); + while (file2.peek() > -1) { + file1.put(file2.get()); + } + file1.write(buffer, latterHalfSize); + + delete[] buffer; + + file1.close(); + file2.close(); +} -- cgit v1.2.3