15.14.2 Buffering in Stream Buffers
Buffering I/O is important for efficiency. One reason for this is that system calls are, in general, relatively
expensive, and it pays to avoid them if possible. There is, however, another, more subtle reason
in C++ for doing buffering in stream buffers, at least for input: The functions for formatted I/O use
stream buffer iterators to access the streams, and operating on stream buffer iterators is slower than
operating on pointers. The difference is not that big, but it is sufficient to justify improved imple mentations for frequently used operations, such as formatted reading of numeric values. However,
for such improvements, it is essential that stream buffers are buffered.