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 關注
- 1300 瀏覽
添加回答
舉報