Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

3. Punch Line Write a program that reads and prints a joke and its punch line fr

ID: 3599230 • Letter: 3

Question

3. Punch Line Write a program that reads and prints a joke and its punch line from two different files. The first file contains a joke but not its punch line. The second file has the punch line as its last line, preceded by "garbage." The main function of your program should open the two files and then call two functions, passing each one the file it needs. The first function should read and display each line in the file it is passed (the joke file). The second function should display only the last line of the file it is passed (the punch line file). It should find this line by seeking to the end of the file and then backing up to the beginning of the last line. Data to test your program can be found in the joke.dat and punchline.dat files.

Explanation / Answer

#include <iostream>
#include <fstream>
#include <string>
using namespace std;


void displayJoke(fstream &);
void displayPunchline(fstream &);

int main()
{
   fstream joke("joke.dat", ios::in);
   if (!joke)
   {
       cout << "Error opening file "joke.dat". ";
       return 0;
   }
   fstream punchline("punchline.dat", ios::in);
   if (!punchline)
   {
       cout << "Error opening file "punchline". ";
       return 0;
   }

   displayJoke(joke);
   displayPunchline(punchline);
   return 0;
}

// displayJoke                                                                          
void displayJoke(fstream &joke)
{
   string buffer;
   while (getline(joke, buffer))
   {
       cout << buffer << endl;
   }
}


// displayPunchline                                                            
void displayPunchline(fstream &punchline)
{
   string buffer;
   punchline.seekg(-36L, ios::end);
   getline(punchline, buffer);
   cout << buffer << endl;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote