Te recomendamos que revises esta resolución en un ambiente controlado antes de pasarlo a producción, saludos.
Solución:
Como no he encontrado una buena solución en C++, he escrito una para todos ustedes.
https://github.com/dattanchu/bprinter/wiki
No estaba satisfecho con ninguno de los que encontré en línea, así que escribí el mío propio: https://github.com/friedmud/variadic_table
Utiliza plantillas variadas para permitir que cada columna contenga un tipo diferente. También solo requiere C++ 11.
VariadicTable vt("Name", "Weight", "Age", "Brother");
vt.addRow("Cody", 180.2, 40, "John");
vt.addRow("David", 175.3, 38, "Andrew");
vt.addRow("Robert", 140.3, 27, "Fande");
vt.print();
Esto generará:
--------------------------------------
| Name | Weight | Age |Brother|
--------------------------------------
|Cody | 180.2| 40|John |
|David | 175.3| 38|Andrew |
|Robert| 140.3| 27|Fande |
--------------------------------------
Esto se está utilizando activamente en un gran proyecto de software, por lo que se mantendrá y desarrollará con el tiempo. Siéntase libre de enviar problemas / relaciones públicas
Que yo sepa, tiene tres opciones principales aquí:
- Una “vía C” mediante el uso de
printf
con especificadores de ancho - Una “manera C++” a través del uso de manipuladores de flujo (en particular
std::setw
ystd::setfill
) - Una forma intermedia usando Boost.Format que le permite usar
printf
formateadores de estilo con flujos.
No conozco ninguna biblioteca que pueda ayudarlo en el “diseño de tablas” más que esto.
Valoraciones y reseñas
Acuérdate de que tienes concesión de añadir una evaluación verdadera .