-
Notifications
You must be signed in to change notification settings - Fork 3
/
inbuf1.cpp
34 lines (30 loc) · 1.07 KB
/
inbuf1.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* The following code example is taken from the book
* "The C++ Standard Library - A Tutorial and Reference"
* by Nicolai M. Josuttis, Addison-Wesley, 1999
*
* (C) Copyright Nicolai M. Josuttis 1999.
* Permission to copy, use, modify, sell and distribute this software
* is granted provided this copyright notice appears in all copies.
* This software is provided "as is" without express or implied
* warranty, and with no claim as to its suitability for any purpose.
*/
#include <iostream>
#include "inbuf1.hpp"
int main()
{
inbuf ib; // create special stream buffer
std::istream in(&ib); // initialize input stream with that buffer
char c;
for (int i=1; i<=20; i++) {
// read next character (out of the buffer)
in.get(c);
// print that character (and flush)
std::cout << c << std::flush;
// after eight characters, put two characters back into the stream
if (i == 8) {
in.unget();
in.unget();
}
}
std::cout << std::endl;
}