首页 >后端开发 >C++ >如何使用'setw()”、'setfill()”和'left”(或'right”)轻松格式化 C 中的数据表?

如何使用'setw()”、'setfill()”和'left”(或'right”)轻松格式化 C 中的数据表?

Barbara Streisand
Barbara Streisand原创
2024-11-17 21:14:02662浏览

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)和模板函数的强大功能,您可以轻松格式化 C 中的数据表无需复杂的计算。

以上是如何使用'setw()”、'setfill()”和'left”(或'right”)轻松格式化 C 中的数据表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn