diff options
-rw-r--r-- | 8p1.cpp | 34 | ||||
-rw-r--r-- | 8p2.cpp | 34 | ||||
-rw-r--r-- | 8p3.cpp | 13 | ||||
-rw-r--r-- | tie-test.cpp | 24 |
4 files changed, 105 insertions, 0 deletions
@@ -0,0 +1,34 @@ +#include <iostream> + +/* + * + * 8.1 + * + * + */ + +std::istream &read_print_report(std::istream &rpr) { + + int 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 () { + + read_print_report(std::cin); + return 0; +} @@ -0,0 +1,34 @@ +#include <iostream> + +/* + * + * 8.2 + * + * + */ + +std::istream &read_print_report(std::istream &rpr) { + + int 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 () { + + read_print_report(std::cin); + return 0; +} @@ -0,0 +1,13 @@ + +/* + * + * + * + * + */ + +int main () { + + // It fails because either eofbit, failbit or badbit is set. + return 0; +} diff --git a/tie-test.cpp b/tie-test.cpp new file mode 100644 index 0000000..8623316 --- /dev/null +++ b/tie-test.cpp @@ -0,0 +1,24 @@ +#include <iostream> + +/* + * + * + * + * + */ + +int main () { + + std::ostream *a = &std::cout; // get address of cout + std::ostream *b = std::cin.tie(&std::cout); // Tie cin and cout + std::ostream *c = std::cin.tie(); // return address of that cin is tied to (cout) + std::cin.tie(0); // Untie by giving null + std::ostream *e = std::cin.tie(); // Check if it's tied, should return null + std::cin.tie(c); // Tie it again to address pointed to by c + std::ostream *f = std::cin.tie(); // Check if it's tied. Should return same address as c or &std::cout + std::cout << a << "\n" << c << std::endl; + std::cout << e << "\n" << f << std::endl; + if(b) // compiler please be quiet + + return 0; +} |