I'm pretty sure this is a simple question in regards to formatting but here's what I want to accomplish:
I want to output data onto the screen using cout
. I want to output this in the form of a table format. What I mean by this is the columns and rows should be properly aligned. Example:
Test 1 Test2 2 Iamlongverylongblah 2 Etc 1
I am only concerned with the individual line so my line to output now (not working) is
cout << var1 << "\t\t" << var2 << endl;
Which gives me something like:
Test 1 Test2 2 Iamlongverylongblah 2 Etc 1
You can use printf("%*s", <width>, "a"); to print any text right aligned by variable no. of spaces.
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; }
I advise using Boost Format. Use something like this:
cout << format("%|1$30| %2%") % var1 % var2;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With