diff options
author | Oskar <[email protected]> | 2024-10-05 16:01:36 +0200 |
---|---|---|
committer | Oskar <[email protected]> | 2024-10-05 16:01:36 +0200 |
commit | 6d33273f62fb78c481babeda6317d0138974ff02 (patch) | |
tree | 7e70ab616485b1ed5bfdc1621f50c498e28d2d13 /8p6.cpp | |
parent | d5fcdab87a013b2c919b66ea9a52b469620ca49f (diff) |
more
Diffstat (limited to '8p6.cpp')
-rw-r--r-- | 8p6.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
@@ -0,0 +1,46 @@ +#include <iostream> +#include <fstream> +#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 + } +} |