summaryrefslogtreecommitdiff
path: root/8p9.cpp
blob: 5889ca233982aa130a5787f8f0d9fcd9942f394a (plain)
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
35
36
37
38
#include <iostream>
#include <sstream>

/*
 *
 * 8.9
 *
 *
 */

std::istream &read_print_report(std::istringstream &rpr) {

	std::string a;
	while(rpr >> a) {
		std::cout << a;
	}

	if(rpr.good()) { std::cout << "good" << std::endl; }
	if(rpr.eof()) { std::cout << "eof" << std::endl; }
	if(rpr.fail()) { std::cout << "fail" << std::endl; }
	if(rpr.bad()) { std::cout << "bad" << std::endl; }
	rpr.clear();
	std::cout << "--- cleared --- \n";
	if(rpr.good()) { std::cout << "good" << std::endl; }
	if(rpr.eof()) { std::cout << "eof" << std::endl; }
	if(rpr.fail()) { std::cout << "fail" << std::endl; }
	if(rpr.bad()) { std::cout << "bad" << std::endl; }
	return rpr;
}


int main () {

	std::string s = "wow i love c++!! This is so cool! I am loving these features, it really feels like C but without having to reimplement everything!";
	std::istringstream a(s);
	read_print_report(a);
	return 0;
}