Jak mogę wyprowadzić dane do konsoli w tabeli w C++? W języku C# jest na to pytanie, ale potrzebuję go w C++.Format wyjściowy w tabeli, C++
To, z wyjątkiem C++: How To: Best way to draw table in console app (C#)
Jak mogę wyprowadzić dane do konsoli w tabeli w C++? W języku C# jest na to pytanie, ale potrzebuję go w C++.Format wyjściowy w tabeli, C++
To, z wyjątkiem C++: How To: Best way to draw table in console app (C#)
nie można zrobić coś bardzo podobnego do # przykład C:
String.Format("|{0,5}|{1,5}|{2,5}|{3,5}|", arg0, arg1, arg2, arg3);
odczuwalna:
printf("|%5s|%5s|%5s|%5s|", arg0, arg1, arg2, arg3);
Oto odniesienie użyłem, aby ten: http://www.cplusplus.com/reference/clibrary/cstdio/printf/
Oto mała próbka tego, co iomanip posiada:
#include <iostream>
#include <iomanip>
int main(int argc, char** argv) {
std::cout << std::setw(20) << std::right << "Hi there!" << std::endl;
std::cout << std::setw(20) << std::right << "shorter" << std::endl;
return 0;
}
Istnieją inne rzeczy można zrobić, jak dobrze, jak ustawienie dokładności liczb zmiennoprzecinkowych , zmieniając znak używany jako dopełnienie, gdy używasz setw, wypisujesz liczby w coś innego niż podstawa 10 i tak dalej.
Sprawdź długość kolumny, a także zachowaj długość o f pod uwagę, aby sformatować.
printf(" %-4s| %-10s| %-5s|\n", "ID", "NAME", "AGE");
Zobacz, jak zaprojektowano interfejs powłoki MySQL, da ci to dobry pomysł.
Nie mogłem znaleźć czegoś, co mi się podobało, więc je zrobiłem. Znajdź go w https://github.com/haarcuba/text-table
Oto exmaple jego wyjściu:
+------+------+----+
| |Sex | Age|
+------+------+----+
|Moses |male |4556|
+------+------+----+
|Jesus |male |2016|
+------+------+----+
|Debora|female|3001|
+------+------+----+
|Bob |male | 25|
+------+------+----+
Dla wyjścia tabelarycznej, printf C bije C++ przerażające I/O ręce w dół. –
@DavidHammen Ale co jeśli format jest za mały? – Walter
@Walter Jest to zdecydowanie problem - możesz po prostu wstawić, aby naprawić niedomiar, ale aby poradzić sobie z przepełnieniami, potrzebujesz logiki i zasad, aby "rozsądnie" owinąć. (Wycofaj się z przepełnienia do najbliższego ogranicznika, cofnij się do nierozgraniczonego zawijania w przypadku krawędzi i * następnie * martw się formatowaniem per-line.) Jest to stosunkowo prosty problem sam w sobie, ale prawdopodobnie więcej pracy niż jest to warte, robisz to dla estetycznego polerowania na niepowiązanym projekcie. –