Je suis sûr que c'est une question simple en ce qui concerne le formatage, mais voici ce que je veux accomplir:
Je veux sortir des données sur l'écran en utilisant cout
. Je veux sortir cela sous la forme d'un format de tableau. Ce que je veux dire par là, c'est que les colonnes et les lignes doivent être correctement alignées. Exemple:
Test 1
Test2 2
Iamlongverylongblah 2
Etc 1
Je ne suis concerné que par la ligne individuelle, donc ma ligne pour sortir maintenant (ne fonctionne pas) est
cout << var1 << "\t\t" << var2 << endl;
Ce qui me donne quelque chose comme:
Test 1
Test2 2
Iamlongverylongblah 2
Etc 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;
}
Je conseille d'utiliser Boost Format . Utilisez quelque chose comme ceci:
cout << format("%|1$30| %2%") % var1 % var2;
Vous devez trouver la longueur de la chaîne la plus longue dans la première colonne. Ensuite, vous devez générer chaque chaîne dans la première colonne d'un champ, la longueur étant celle de la chaîne la plus longue. Cela signifie nécessairement que vous ne pouvez rien écrire avant d'avoir lu chaque chaîne.
tu peux le faire avec
string str = "somthing";
printf ("%10s",str);
printf ("%10s\n",str);
printf ("%10s",str);
printf ("%10s\n",str);