Frage

Ich bin mir ziemlich sicher, dass dies eine einfache Frage in Bezug auf die Formatierung ist aber hier ist es, was ich erreichen will:

Ich möchte Ausgabedaten auf den Bildschirm mit cout. Ich möchte diese in Form eines Tabellenformat ausgegeben. Was ich damit meine ist, die Spalten und Zeilen sollten richtig ausgerichtet werden. Beispiel:

Test                 1
Test2                2
Iamlongverylongblah  2
Etc                  1

Ich bin nur mit der individuellen Leitung so meine Linie Ausgang besorgt jetzt (nicht in Betrieb) ist

cout << var1 << "\t\t" << var2 << endl;

Was mir so etwas wie gibt:

Test                 1
Test2                  2
Iamlongverylongblah         2
Etc                  1
War es hilfreich?

Lösung

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;
}

Andere Tipps

Ich rate mit Boost-Format href="http://www.boost.org/doc/libs/1_37_0/libs/format/index.html". Verwenden Sie so etwas wie folgt aus:

cout << format("%|1$30| %2%") % var1 % var2;

Sie müssen die Länge der längsten Zeichenkette in der ersten Spalte finden. Dann müssen Sie jede Zeichenfolge in der ersten Spalte in einem Feld mit der Länge ausgibt, dass diese längsten Zeichenfolge sein. Dies notwendigerweise bedeutet, dass Sie nicht alles schreiben, bis Sie jede einzelne Saite gelesen haben.

Sie können es mit

string str = "somthing";
printf ("%10s",str);
printf ("%10s\n",str);
printf ("%10s",str);
printf ("%10s\n",str);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top