Как вывести данные на консоль в виде таблицы в C ++? В C # есть вопрос, но он мне нужен в C ++.
Это, кроме C ++: How To: Лучший способ рисовать таблицу в консольном приложении (C #)
Вот небольшой пример того, что имеет iomanip:
#include <iostream> #include <iomanip> int main(int argc, char** argv) { std::cout << std::setw(20) << std::right << "Hi there!" << std::endl; std::cout << std::setw(20) << std::right << "shorter" << std::endl; return 0; }
Есть и другие вещи, которые вы можете сделать, например, установить точность чисел с плавающей запятой, изменить символ, используемый в качестве отступа при использовании setwвывод чисел во что-то отличное от базы 10 и т. д.
http://cplusplus.com/reference/iostream/manipulators/
Разве вы не можете сделать что-то очень похожее на пример C #:
String.Format("|{0,5}|{1,5}|{2,5}|{3,5}|", arg0, arg1, arg2, arg3);
Как:
printf("|%5s|%5s|%5s|%5s|", arg0, arg1, arg2, arg3);
Вот ссылка, которую я использовал, чтобы сделать это: http://www.cplusplus.com/reference/clibrary/cstdio/printf/
Я не смог найти то, что мне понравилось, поэтому я сделал это.Найдите его в https://github.com/haarcuba/text-table
Вот пример его вывода:
+------+------+----+ | |Sex | Age| +------+------+----+ |Moses |male |4556| +------+------+----+ |Jesus |male |2016| +------+------+----+ |Debora|female|3001| +------+------+----+ |Bob |male | 25| +------+------+----+
Проверьте длину значения столбца, а также учитывайте длину значения для форматирования.
printf(" %-4s| %-10s| %-5s|\n", "ID", "NAME", "AGE");
Посмотрите, как был разработан интерфейс оболочки MySQL, это даст вам хорошую идею.