From 6d33273f62fb78c481babeda6317d0138974ff02 Mon Sep 17 00:00:00 2001 From: Oskar Date: Sat, 5 Oct 2024 16:01:36 +0200 Subject: more --- 8p4.cpp | 36 ++++++++++++++++++++++++++++++++++++ 8p5.cpp | 36 ++++++++++++++++++++++++++++++++++++ 8p6.cpp | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 118 insertions(+) create mode 100644 8p4.cpp create mode 100644 8p5.cpp create mode 100644 8p6.cpp diff --git a/8p4.cpp b/8p4.cpp new file mode 100644 index 0000000..68a4355 --- /dev/null +++ b/8p4.cpp @@ -0,0 +1,36 @@ +#include +#include +#include +#include + +/* + * + * 8.4 + * + * + */ + +int main (int argc, char **argv) { + + if(argc < 2 || argc > 2) { + return 1; + } + + std::ifstream file(argv[1]); + if(file.fail()) { + return 1; + } + + std::vector fvec; + std::string tmp; + while(std::getline(file, tmp)) { + fvec.push_back(tmp); + } + + for(auto a : fvec) { + std::cout << a << "\n"; + } + + std::cout << std::ends; + return 0; +} diff --git a/8p5.cpp b/8p5.cpp new file mode 100644 index 0000000..17c6223 --- /dev/null +++ b/8p5.cpp @@ -0,0 +1,36 @@ +#include +#include +#include +#include + +/* + * + * 8.5 + * + * + */ + +int main (int argc, char **argv) { + + if(argc < 2 || argc > 2) { + return 1; + } + + std::ifstream file(argv[1]); + if(file.fail()) { + return 1; + } + + std::vector svec; + std::string tmp; + while(file >> tmp) { + svec.push_back(tmp); + } + + for(auto a : svec) { + std::cout << a << "\n"; + } + + std::cout << std::ends; + return 0; +} diff --git a/8p6.cpp b/8p6.cpp new file mode 100644 index 0000000..a069b2d --- /dev/null +++ b/8p6.cpp @@ -0,0 +1,46 @@ +#include +#include +#include "sales_data.hpp" + +/* + * + * 8.6 + * + * + */ + +int main (int argc, char **argv) { + + if(argc < 2 || argc > 2) { + return -1; + } + + std::fstream file(argv[1]); + if(file.fail()) { + return -1; + } + + SalesData total; + // variable to hold the running sum + if (read(file, total)) { // read the first transaction + SalesData trans; + // variable to hold data for the next transaction + while(read(file, trans)) { + // read the remaining transactions + if (total.isbn() == trans.isbn()) + // check the isbns + total.combine(trans); // update the running total + else { + print(std::cout, total) << std::endl; // print the results + total = trans; + // process the next book + } + } + print(std::cout, total) << std::endl; + // print the last transaction + } else { + // there was no input + std::cerr << "No data?!" << std::endl; + // notify the user + } +} -- cgit v1.2.3