Interactive applications generally involve an istream
for input and an ostream
for output. When a prompting message appears on the screen, the user responds by entering the appropriate data. Obviously, the prompt needs to appear before the input operation proceeds. With output buffering, outputs appear only
when the buffer fills
when outputs are flushed explicitly by the program or
automatically at the end of the program.
C++ provides member function tie
to synchronize (i.e., “tie together”) the operation of an istream
and an ostream
to ensure that outputs appear before their subsequent inputs. The call
cin.tie(&cout);
ties cout
(an ostream
) to cin
(an istream
). Actually, this particular call is redundant, because C++ performs this operation automatically to create a user’s standard input/output environment. However, the user would tie other istream
/ostream
pairs explicitly. To untie an input stream, inputStream
, from an output stream, use the call
inputStream.tie(0);