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;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.