Crie facilmente Tabelas no Terminal com C++

Uma biblioteca C++ que facilita o desenvolvimento dos seus aplicativos TUI.


Crie facilmente Tabelas no Terminal com C++


Aplicativos TUI(Terminal User Interface) estão crescendo dia após dia. E para você exibir dados em tabela no terminal com cores e outros recursos, para desenvolvedores C++ há mais uma biblioteca muito simples de usar: Tabulate .

Instalação

Para usar Tabulate em seus aplicativos, basta instalá-la no seu sistema e para isso você precisará das seguintes dependências:

Geralmente programadores C++ já possuem todas elas instaladas, mas por via das dúvidas… 😃

Após isso é só clonar e instalar com os seguintes comandos:

git clone https://github.com/p-ranav/tabulate
cd tabulate
cmake .
sudo make install


Utilização

Existem diversas formas de aplicar o Tabulate no seu código, no entanto, a forma mais básica seria:

  • Incluir a biblioteca: #include <tabulate/table.hpp>
  • Utilizar o namespace diretamente ou com using: using namespace tabulate;
  • Instanciar a clase: Table table;
  • E usar o código conforme necessidade.

Nesse exemplo básico imprimimos duas células com larguras predefinidas de acordo como desejar:

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;
}

Para compilar não precisa de nenhuma flag adicional, exemplo:

g++ main.cpp
./a.out

Possível saída:

+--------------------+--------------------------------------------------+
| This paragraph     | This paragraph                                   |
| contains a         | has embedded '\n'                                |
| veryveryveryveryv- | characters and                                   |
| eryverylong word.  | will break                                       |
| The long word will | exactly where                                    |
| break and word     | you want it                                      |
| wrap to the next   | to                                               |
| line.              | break.                                           |
+--------------------+--------------------------------------------------+

Note que para imprir a tabela você deve usar o std::cout << nome_da_tabela << '\n'; . E para adicionar recursos, formatação, cores e outros você pode fazer união na instância da sua classe, por exemplo, adicionar cor seria : table[0][0].format().font_color(Color::yellow);, nesse caso de acordo com o exemplo acima o [0][0] indica que a saída da célula à esquerda terá agora a cor amarela .


Mais exemplos

Para um exemplo mais detalhado você pode usar o diretório samples/ , exemplo:

g++ tabulate/samples/summary.cpp
./a.out

A possível saída será:

Summary Tabulate C++

Se quiser desinstalar o Tabulate, rode:

sudo rm -rf /usr/local/lib64/cmake/tabulate /usr/local/include/tabulate

Para mais exemplos e informações acesse o repositório oficial .

Aprenda C++, acesse: https://terminalroot.com.br/cpp .

Aprenda Desenvolvimento de Games com C++ e SFML: https://terminalroot.com.br/games


cpp cppdaily tui


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!