Program Specifications Write a function called rCopy that copies the entire contents of one file to another, but copies them over in reverse order. This function should take the names of the input and output files as strings. If either file does not open for any reason, the function should output an error message stating the name of the file that didn't open and then return the value false. Otherwise, if both files open correctly, the function should return true once the reverse copy has been completed. For example, if a file named in.dat contains the following: A c d 87 arc 6587 9 9 then after the function call: rCopy ("in.dat", "out.dat") the file out.dat should contain the following: 9 9 7856 cra 78 d c A You must solve this recursively!! To implement this recursively you will need to write a helper function that passes in an input and an output file stream. This helper function will be the recursive function. Recall that the expression cin.get(ch) will read in a single character from cin into a char variable named ch. Again, this must use recursion to get any points. You may NOT use any kind of loop. You may NOT use global or static variables. You will be docked at least 20 points if you use a loop, a global variable, or a static variable.

C++ for Engineers and Scientists
4th Edition
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Bronson, Gary J.
Chapter8: I/o Streams And Data Files
Section8.3: Random File Access
Problem 6E
icon
Related questions
Question
Program Specifications
Write a function called rCopy that copies the entire contents of one file to another, but copies them over in reverse order. This function
should take the names of the input and output files as strings. If either file does not open for any reason, the function should output an error
message stating the name of the file that didn't open and then return the value false. Otherwise, if both files open correctly, the function
should return true once the reverse copy has been completed.
For example, if a file named in.dat contains the following:
A c d 87
arc 6587
9 9
then after the function call:
rCopy("in.dat", "out.dat")
the file out.dat should contain the following:
9 9
7856 cra
78 d c A
You must solve this recursively!! To implement this recursively you will need to write a helper function that passes in an input and an
output file stream. This helper function will be the recursive function. Recall that the expression cin.get(ch) will read in a single character
from cin into a char variable named ch.
Again, this must use recursion to get any points.
You may NOT use any kind of loop. You may NOT use global or static variables. You will be docked at least 20 points if you use a loop, a
global variable, or a static variable.
Transcribed Image Text:Program Specifications Write a function called rCopy that copies the entire contents of one file to another, but copies them over in reverse order. This function should take the names of the input and output files as strings. If either file does not open for any reason, the function should output an error message stating the name of the file that didn't open and then return the value false. Otherwise, if both files open correctly, the function should return true once the reverse copy has been completed. For example, if a file named in.dat contains the following: A c d 87 arc 6587 9 9 then after the function call: rCopy("in.dat", "out.dat") the file out.dat should contain the following: 9 9 7856 cra 78 d c A You must solve this recursively!! To implement this recursively you will need to write a helper function that passes in an input and an output file stream. This helper function will be the recursive function. Recall that the expression cin.get(ch) will read in a single character from cin into a char variable named ch. Again, this must use recursion to get any points. You may NOT use any kind of loop. You may NOT use global or static variables. You will be docked at least 20 points if you use a loop, a global variable, or a static variable.
#include <iostream>
#include <fstream>
using namespace std;
void rCopy(istream &, ostream &);
bool rCopy(const string &, const string &);
int main(int argc, char *argv[]) {
if (argc != 3) {
cout << "USAGE:
<« argv[0] <
input-file output-file" << endl;
return 1;
}
if (rCopy(argv[1], argv[2])) {
cout <« "Copy completed" <« endl;
} else {
cout <« "Copy not completed" <« endl;
}
return 0;
}
// Implement these functions
void rCopy(istream &in, ostream &out) {
}
bool rCopy(const string &in, const string &out) {
return true;
}
Transcribed Image Text:#include <iostream> #include <fstream> using namespace std; void rCopy(istream &, ostream &); bool rCopy(const string &, const string &); int main(int argc, char *argv[]) { if (argc != 3) { cout << "USAGE: <« argv[0] < input-file output-file" << endl; return 1; } if (rCopy(argv[1], argv[2])) { cout <« "Copy completed" <« endl; } else { cout <« "Copy not completed" <« endl; } return 0; } // Implement these functions void rCopy(istream &in, ostream &out) { } bool rCopy(const string &in, const string &out) { return true; }
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps

Blurred answer
Knowledge Booster
File Input and Output Operations
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ for Engineers and Scientists
C++ for Engineers and Scientists
Computer Science
ISBN:
9781133187844
Author:
Bronson, Gary J.
Publisher:
Course Technology Ptr