J'essaie d'obtenir ma sortie pour ressembler à ceci:
size time1 time2
-------------------------------
10 4 8
100 48 16
1000 2937 922
10000 123011 3902
100000 22407380 830722
Et je sais que je dois utiliser setw()
, setfill()
et left
. Cependant, mes tentatives continuent de me donner une sortie incorrecte. Voici un exemple de mon code:
std::cout << "size" << std::setw(20) << "time" << std::setw(20) << "time2\n";
std::cout << std::setfill('-') << std::setw(60) << "-" << std::endl;
run = 10;
for(int i = 0; i < 5; i++) {
std::cout << run;
run *= 10;
std::cout << std::setw(20) << std::left << time1[i];
std::cout << std::setw(20) << std::left << time2[i] << "\n";
}
Et voici la sortie:
size time1 time2
------------------------------------------------------------
103-------------------13------------------
100171-----------------199-----------------
100013183---------------667-----------------
10000670130--------------8205----------------
10000014030798-------------1403079888---------
J'ai essayé de changer l'ordre dans lequel j'utilise setw()
, setfill()
et left
, mais je vole juste en ce moment. J'ai également recherché des tutoriels iomanip. Je suis les instructions - pour autant que je sache - mais je ne comprends toujours pas.
Comment puis-je empêcher la setfill()
de s'exécuter? Comment puis-je justifier la gauche mais utiliser setw()
pour empêcher les nombres de se rencontrer?
Que diriez-vous:
std::cout << "size" << std::setw(20) << "time" << std::setw(20) << "time2\n";
std::cout << std::setfill('-') << std::setw(60) << "-" << std::endl;
run = 10;
std::cout << std::setfill(' '); //fill with spaces
for(int i = 0; i < 5; i++) {
std::cout << std::setw(20) << std::left << run; // fill the run column
run *= 10;
std::cout << std::setw(20) << std::left << time1[i];
std::cout << std::setw(20) << std::left << time2[i] << "\n";
}
la réponse de sj0h est excellente, sauf que les titres ne correspondent pas tout à fait. Pour le corriger, j'ai commencé la ligne de titre avec "left" et "setw", je devais également terminer par "endl" au lieu de "\ n".
std::cout << std::left << std::setw(20) << "size" << std::setw(20) << "time" << std::setw(20) << "time2" << std::endl;
std::cout << std::setfill('-') << std::setw(60) << "-" << std::endl;
run = 10;
std::cout << std::setfill(' '); //fill with spaces
for(int i = 0; i < 10; i++) {
std::cout << std::setw(20) << std::left << run; // fill the run column
run *= 10;
std::cout << std::setw(20) << std::left << time1[i];
std::cout << std::setw(20) << std::left << time2[i] << std::endl;
}