ホームページ  >  記事  >  バックエンド開発  >  C で `setw()`、`setfill()`、および `left` (または `right`) を使用してデータ テーブルを簡単にフォーマットするにはどうすればよいですか?

C で `setw()`、`setfill()`、および `left` (または `right`) を使用してデータ テーブルを簡単にフォーマットするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-17 21:14:02589ブラウズ

How can I easily format data tables in C   using `setw()`, `setfill()`, and `left` (or `right`)?

C でデータ テーブルを簡単にフォーマットする

データ テーブルを操作する場合、多くの場合、読みやすく解釈しやすい方法でデータ テーブルをフォーマットする必要があります。 C は、 でいくつかの関数を提供します。

関数 setw()、setfill()、および left (または right) は連携して、データ要素の幅、塗りつぶし文字、配置を制御します。これらの関数を適切に使用すると、最小限の労力で書式設定されたテーブルを作成できます。

たとえば、次の書式設定されていないテーブルについて考えてみましょう:

Bob Doe     10.96      7.61     14.39      2.11     47.30     14.21     44.58      5.00     60.23
Helen City     10.44      7.78     16.27      1.99     48.92     13.93     53.79      5.00     70.97
Joe Green     10.90      7.33     14.49      2.05     47.91     14.15     44.45      4.70     73.98

必要に応じてテーブルを書式設定するには:

const char separator = ' ';
const int nameWidth = 6;
const int numWidth = 8;

cout << left << setw(nameWidth) << setfill(separator) << "Bob";
cout << left << setw(nameWidth) << setfill(separator) << "Doe";
cout << left << setw(numWidth) << setfill(separator) << 10.96;
cout << left << setw(numWidth) << setfill(separator) << 7.61;
cout << left << setw(numWidth) << setfill(separator) << 14.39;
cout << left << setw(numWidth) << setfill(separator) << 2.11;
cout << left << setw(numWidth) << setfill(separator) << 47.30;
cout << left << setw(numWidth) << setfill(separator) << 14.21;
cout << left << setw(numWidth) << setfill(separator) << 44.58;
cout << left << setw(numWidth) << setfill(separator) << 5.00;
cout << left << setw(numWidth) << setfill(separator) << 60.23;
cout << endl;

このコードは、フォーマットされたテーブルを生成します:

Bob           Doe        BLR  10.96   7.61  14.39   2.11  47.30  14.21  44.58   5.00  60.23  4:27.47
Helen         City       CUB  10.90   7.33  14.49   2.05  47.91  14.15  44.45   4.70  73.98  4:29.17
Joe           Green      USA  10.44   7.78  16.27   1.99  48.92  13.93  53.79   5.00  70.97  5:06.59

コードをさらに簡素化するには、テンプレート関数を使用してフォーマットを処理できます:

template<typename T> void printElement(T t, const int&amp; width)
{
    cout << left << setw(width) << setfill(separator) << t;
}

これを使用テンプレート関数を使用すると、要素を次のように書式設定できます。

printElement("Bob", nameWidth);
printElement("Doe", nameWidth);
printElement(10.96, numWidth);
printElement(17.61, numWidth);
printElement(14.39, numWidth);
printElement(2.11, numWidth);
printElement(47.30, numWidth);
printElement(14.21, numWidth);
printElement(44.58, numWidth);
printElement(5.00, numWidth);
printElement(60.23, numWidth);
cout << endl;

setw()、setfill()、left (または right)、および template 関数を組み合わせることで、C でデータ テーブルを簡単に書式設定できます。複雑な計算は必要ありません。

以上がC で `setw()`、`setfill()`、および `left` (または `right`) を使用してデータ テーブルを簡単にフォーマットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。