Skip to main content

How To Think Like a Computer Scientist C++ Edition The Pretext Interactive Version

Section 15.4 File output

Sending output to a file is similar. For example, we could modify the previous program to copy lines from one file to another.
#include <iostream>
using namespace std;

int main() {
 ifstream infile("input-file");
 ofstream outfile("output-file");

 if (infile.good() == false || outfile.good() == false) {
   cout << "Unable to open one of the files." << endl;
   exit (1);
 }

 while (true) {
   getline(infile, line);
   if (infile.eof()) break;
   outfile << line << endl;
 }
}

Checkpoint 15.4.1.

Create a code block that sends output to a file. First, make sure that both the input file and the output file are able to be opened.

Checkpoint 15.4.2.

The code from the previous problem checks whether the files open or not. It doesn’t specify which one, if any, doesn’t open. How could you specify which file does not open?
  • Create two "for" loops instead of an if-statement so that the statement loops through both conditions once.
  • Try again!
  • Create a "while" loop instead of an if-statement so that the statement loops through both conditions separately until the body of the loop is reached.
  • Try again!
  • Create two "if" statements, one that check whether in_file.good() is false, and another that checks whether out_file.good() is false, instead of putting them together in one "if" statement.
  • Correct!

Checkpoint 15.4.3.

You have attempted 1 of 4 activities on this page.