128k views
0 votes
Write the definition of a function named fscopy that does a line-by-line copy from one stream to another. This function can be safely passed two fstream objects, one opened for reading, the other for writing. In addition, it gets a bool argument that is true if the output lines are to be numbered, and another argument, an int that specifies line-spacing in the output. Assume that the input source is a text file consisting of a sequence of newline character-terminated lines. The function copies, line by line, the entire content of the data source associated with the first argument to the data target associated with the second argument. It returns the number of lines read in. If it the third parameter, the bool is true, every line that is output is preceded by a 6-position field holding the line number (an integer) followed by a space and then the actual line. If the last argument, the int is 2 or more, it specifies the line spacing: for example, it is 3, there are two blank lines output after each line printed. These blank lines are NOT numbered.

User Tenfourty
by
5.4k points

1 Answer

3 votes

Answer:

Step-by-step explanation:

int fscopy(fstream &fsin, fstream &fsout, bool numbered, int spacing)

{int linecount=0;

string s;

getline(fsin, s, '\\');

while (!fsin.fail())

{ linecount++;

if (numbered)

fsout << setw(6) << linecount << " ";

fsout << s << endl;

for (int i=1; i<spacing; i++)

fsout << endl;

getline(fsin, s, '\\'); }

return linecount; }

User Andrzej Gis
by
5.4k points