TUI (Terminal User Interface) applications are growing day by day. And for you to display table data in the terminal with colors and other features, for C++ developers there is one more library that is very simple to use: Tabulate .
To use Tabulate in your applications, just install it on your system and for that you will need the following dependencies:
Usually C++ programmers already have them all installed, but just in case… 😃
After that, just clone and install with the following commands:
git clone https://github.com/p-ranav/tabulate
cd tabulate
cmake .
sudo make install
There are several ways to apply Tabulate in your code, however, the most basic way would be:
#include <tabulate/table.hpp>
using namespace tabulate;
Table table;
In this basic example we print two cells with predefined widths as desired:
vim main.cpp
#include <tabulate/table.hpp>
using namespace tabulate;
int main() {
Table table;
table.add_row({"This paragraph contains a veryveryveryveryveryverylong word. The long word will "
"break and word wrap to the next line.",
"This paragraph \nhas embedded '\\n' \ncharacters and\n will break\n exactly "
"where\n you want it\n to\n break."});
table[0][0].format().width(20);
table[0][1].format().width(50);
std::cout << table << std::endl;
}
To compile you don’t need any additional flag, example:
g++ main.cpp
./a.out
Possible output:
TABLE
Note that to print the table you must use std::cout << table_name << '\n';
. And to add features, formatting, colors and others you can do union in your class instance, for example adding color would be: table[0][0].format().font_color(Color::yellow);
, in this case according to the example above the [0][0]
indicates that the output of the cell on the left will now be colored yellow .
For a more detailed example you can use the samples/ directory, example:
g++ tabulate/samples/summary.cpp
./a.out
The possible output will be:
If you want to uninstall Tabulate, run:
sudo rm -rf /usr/local/lib64/cmake/tabulate /usr/local/include/tabulate
For more examples and information visit the official repository .