diff options
Added files from project 2 (mirror)
1 files changed, 60 insertions, 0 deletions
| -rw-r--r-- | Year 1/Object-oriented Programming/Project 2/src/Generic/ConsoleInterface/Toolbox.hpp | 60 |
diff --git a/Year 1/Object-oriented Programming/Project 2/src/Generic/ConsoleInterface/Toolbox.hpp b/Year 1/Object-oriented Programming/Project 2/src/Generic/ConsoleInterface/Toolbox.hpp new file mode 100644 index 0000000..4b59626 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/src/Generic/ConsoleInterface/Toolbox.hpp @@ -0,0 +1,60 @@ +#ifndef HEADER_CONSOLEINTERFACE_TOOLBOX +#define HEADER_CONSOLEINTERFACE_TOOLBOX + +#include <iostream> +#include "../List/List.hpp" +#include "../String/String.h" + +/*! \file Toolbox.hpp + * \brief Stores a wide range of functions for simpler/more automated printing. + * + * Adds a lot of functions for printing. + * + * \remark iostream is included by necessity (templated functions), you should only use the provided functions, if you can. + */ + +#define MAX_LINE_WIDTH 1024 + +//! Prints label, gets a whole line of input and stores it to output +void inputLineBox(char* output, unsigned maxWidth, bool ignore = true); + +//! Prints a string list as a table +void printTable(const List<String>& items, unsigned columns); + +//! Reads user input and stores it +template <typename T> +void read(T* storage) { + std::cin >> storage; +} + +//! Reads user input and stores it +template <typename T> +void read(T& storage) { + std::cin >> storage; +} + +//! Prints given item +template <typename T> +void print(const T* item) { + std::cout << item; +} + +//! Prints given item +template <typename T> +void print(const T& item) { + std::cout << item; +} + +//! Prints given item and an endline character +template <typename T> +void printLine(const T* item) { + std::cout << item << std::endl; +} + +//! Prints given item and an endline character +template <typename T> +void printLine(const T& item) { + std::cout << item << std::endl; +} + +#endif |
