Форматирование cout
Я уверен, что это простой вопрос в отношении форматирования, но вот что я хочу сделать:
Я хочу выводить данные на экран с помощью cout. Я хочу вывести это в виде табличного формата. Я имею в виду, что столбцы и строки должны быть правильно выровнены. Пример:
Test 1
Test2 2
Iamlongverylongblah 2
Etc 1
Меня интересует только отдельная строка, поэтому моя строка для вывода (не работает)
cout < var1 < "\ t\t" < var2 < епсИ;
Что дает мне что-то вроде:
Test 1
Test2 2
Iamlongverylongblah 2
Etc 1
Ответы
Ответ 1
setw.
#include <iostream>
#include <iomanip>
using namespace std;
int main () {
cout << setw(21) << left << "Test" << 1 << endl;
cout << setw(21) << left << "Test2" << 2 << endl;
cout << setw(21) << left << "Iamlongverylongblah" << 2 << endl;
cout << setw(21) << left << "Etc" << 1 << endl;
return 0;
}
Ответ 2
Советую использовать Boost Format. Используйте что-то вроде этого:
cout << format("%|1$30| %2%") % var1 % var2;
Ответ 3
Вы должны найти длину самой длинной строки в первом столбце. Затем вам нужно вывести каждую строку в первом столбце в поле с длиной, имеющей длину самой длинной строки. Это обязательно означает, что вы ничего не можете написать, пока не прочитаете каждую строку.
Ответ 4
вы можете сделать это с помощью
string str = "somthing";
printf ("%10s",str);
printf ("%10s\n",str);
printf ("%10s",str);
printf ("%10s\n",str);