3 回答
TA贡献1804条经验 获得超3个赞
ISO C ++标准的实现方法是#include <iomanip>使用io机械手,例如std::setw。但是,也就是说,那些io操纵器即使是用于文本也很麻烦,并且几乎不能用于格式化数字(我假设您希望您的美元金额在小数点上对齐,具有正确的有效数字位数,等等。 )。即使对于纯文本标签,代码在第一行的第一部分也将如下所示:
// using standard iomanip facilities
cout << setw(20) << "Artist"
<< setw(20) << "Title"
<< setw(8) << "Price";
// ... not going to try to write the numeric formatting...
如果您能够使用Boost库,请运行(不要行走)并使用Boost.Format库。它与标准iostream完全兼容,它为您提供了所有优点,使您可以轻松使用printf / Posix格式化字符串进行格式化,但又不会失去iostream本身的功能和便利。例如,前两行的第一部分如下所示:
// using Boost.Format
cout << format("%-20s %-20s %-8s\n") % "Artist" % "Title" % "Price";
cout << format("%-20s %-20s %8.2f\n") % "Merle" % "Blue" % 12.99;
TA贡献1898条经验 获得超8个赞
IO机械手是您所需要的。setw尤其如此。这是参考页上的示例:
// setw example
#include <iostream>
#include <iomanip>
using namespace std;
int main () {
cout << setw (10);
cout << 77 << endl;
return 0;
}
使用left和right操纵器可以左右对齐字段。
还可以看看setfill。这是有关使用io机械手格式化C ++输出的更完整的教程。
- 3 回答
- 0 关注
- 1262 浏览
添加回答
举报