C++のテーブルのコンソールにデータを出力するにはどうすればよいですか?これはC#での質問ですが、私はC++でそれが必要です。テーブル内での書式出力、C++
これは、C++を除き:How To: Best way to draw table in console app (C#)
C++のテーブルのコンソールにデータを出力するにはどうすればよいですか?これはC#での質問ですが、私はC++でそれが必要です。テーブル内での書式出力、C++
これは、C++を除き:How To: Best way to draw table in console app (C#)
あなたはのC#の例と非常によく似た何かをすることはできません。
String.Format("|{0,5}|{1,5}|{2,5}|{3,5}|", arg0, arg1, arg2, arg3);
同様:
printf("|%5s|%5s|%5s|%5s|", arg0, arg1, arg2, arg3);
は、ここで私はこれを行うために使用する基準です:http://www.cplusplus.com/reference/clibrary/cstdio/printf/
ここiomanipが持っているものの小さなサンプルです:
#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;
}
浮動小数点数の精度を設定するようにあなたが同様に行うことができます他のものがありますが、 setwを使用しているときにパディングとして使用されている文字を変更したり、基数10以外の数値を出力したりします。
列の値の長さを確認し、フォーマットすることを念頭に置きましょう。
printf(" %-4s| %-10s| %-5s|\n", "ID", "NAME", "AGE");
MySQLシェルインターフェイスがどのように設計されているかを確認すると、良いアイデアが得られます。
好きなものが見つかりませんでした。ここでは、その出力のexmapleだhttps://github.com/haarcuba/text-table
でそれを探す:
+------+------+----+
| |Sex | Age|
+------+------+----+
|Moses |male |4556|
+------+------+----+
|Jesus |male |2016|
+------+------+----+
|Debora|female|3001|
+------+------+----+
|Bob |male | 25|
+------+------+----+
表形式の出力では、C言語のprintfがダウンしてC++恐ろしいI/Oの手を打ちます。 –
@DavidHammenしかし、フォーマットが小さすぎるとどうなりますか? – Walter
@Walterこれは間違いなく問題です。アンダーフローを修正するために埋め込むことはできますが、オーバーフローを処理するには、すべてのロジックとポリシーを「感覚的に」包む必要があります。 (オーバーフローから最寄りの区切り文字に戻って、区切り文字の区切りに戻って、大文字小文字を区別して、一行ごとの書式設定を心配してください。)それは比較的簡単な問題ですが、無関係のプロジェクトで審美的な磨きをしています。 –