From e32a65a660962da24d70588c3995cf2b71fad0b5 Mon Sep 17 00:00:00 2001 From: Trianta <56975502+Trimutex@users.noreply.github.com> Date: Mon, 18 Mar 2024 19:52:05 -0500 Subject: [PATCH] Added print function for outputting database and attributes --- src/arff/arff.cpp | 25 +++++++++++++++++++++++++ src/arff/arff.hpp | 1 + src/arff/main.cpp | 1 + 3 files changed, 27 insertions(+) diff --git a/src/arff/arff.cpp b/src/arff/arff.cpp index a247e78..49dc8ef 100644 --- a/src/arff/arff.cpp +++ b/src/arff/arff.cpp @@ -81,6 +81,31 @@ namespace ARFF { TestIntegrity(); } + void Arff::Print(void) { + std::cout << attributeList.size() << " attributes\n"; + std::cout << database.size() << " examples\n"; + std::cout << std::endl; + + std::cout << "Attribute (#): values\n"; + for (AttributeType type : attributeList) { + std::cout << type.attribute << " (" << type.values.size() << "):"; + for (std::string value : type.values) { + std::cout << " " << value; + } + std::cout << '\n'; + } + std::cout << std::endl; + + std::cout << relation << '\n'; + for (Instance instance: database) { + for (std::string value : instance.values) { + std::cout << '\t' << value; + } + std::cout << '\n'; + } + std::cout << std::endl; + } + // Add the attribute to the list void Arff::AddAttribute(std::string line) { std::stringstream parser(line); diff --git a/src/arff/arff.hpp b/src/arff/arff.hpp index 7334c85..8afc7af 100644 --- a/src/arff/arff.hpp +++ b/src/arff/arff.hpp @@ -29,6 +29,7 @@ namespace ARFF { public: Arff() = default; void Read(std::string filename); + void Print(void); private: std::string relation; std::vector attributeList; diff --git a/src/arff/main.cpp b/src/arff/main.cpp index 11caf3d..4f24fae 100644 --- a/src/arff/main.cpp +++ b/src/arff/main.cpp @@ -9,4 +9,5 @@ int main(int argc, char* argv[]) { ARFF::ParseArguments(argc, argv); ARFF::Arff data; data.Read(ARFF::GetDataFilename()); + data.Print(); }