diff options
author | Oskar <[email protected]> | 2024-10-05 14:23:02 +0200 |
---|---|---|
committer | Oskar <[email protected]> | 2024-10-05 14:23:02 +0200 |
commit | d5fcdab87a013b2c919b66ea9a52b469620ca49f (patch) | |
tree | d4f5018348d7d40b2ace6e01af3fb6803795f23e | |
parent | 2f1ad9ec273a0ff9e746e9f6c4cac2ce81cb31e4 (diff) |
more
-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; +} |