Уже комп виснет от вкладок, а я никак не пойму, как сделать нормальную табуляцию в консоле. Код для примера:
cout << "name" << "\t[" << "12:10:10" << "] ";
cout << "\t[" << "qwe" << "]";
cout << "\t<" << "name" << "> : " << "message" << endl;
cout << "name2" << "\t[" << "12:10:10" << "] ";
cout << "\t[" << "rqwqsvdwdfqweqr" << "]";
cout << "\t<" << "name" << "> : " << "message" << endl;
Ожидаемый вывод:
name [12:10:10] [qwe] <name> : message
name2 [12:10:10] [rqwqsvdwdfqweqr] <name> : message
Полученный вывод:
name [12:10:10] [qwe] <name> : message
name2 [12:10:10] [rqwqsvdwdfqweqr] <name> : message
Уже пробовал обычные табуляторы \t, вертикальные табуляторы \v (которые так и не понял как работают), использовал setw(), но ничего не выходит.
Можно, конечно, вручную считать длину имени в скобках, и в зависимости от размера давать либо \t либо \t\t, либо \t\t\t, но неужели нельзя всё это сделать проще?
Устанавливаете выравнивание по левому краю setiosflags(ios::left) и указываете ширину setw(10).
#include "iostream"
#include <iomanip>
using namespace std;
int main()
{
cout << setiosflags(ios::left);
cout << setw(10) << "name";
cout << setw(15) << "[12:10:10]";
cout << setw(20) << "[qwe]";
cout << "<name> : message" << endl;
cout << setw(10) << "name2";
cout << setw(15) << "[12:10:10]";
cout << setw(20) << "[rqwqsvdwdfqweqr]";
cout << "<name> : message" << endl;
return 0;
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости