亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

打印cout <<時的C ++對齊

打印cout <<時的C ++對齊

C++
當年話下 2019-10-26 13:40:58
使用打印時是否可以對齊文本std::cout?我正在使用制表符,但是當單詞太大時,它們將不再對齊。Sales Report for September 15, 2010Artist  Title   Price   Genre   Disc    Sale    Tax CashMerle   Blue    12.99   Country 4%  12.47   1.01    13.48Richard Music   8.49    Classical   8%  7.81    0.66    8.47Paula   Shut    8.49    Classical   8%  7.81    0.72    8.49
查看完整描述

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;


查看完整回答
反對 回復 2019-10-26
?
汪汪一只貓

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 ++輸出的更完整的教程。


查看完整回答
反對 回復 2019-10-26
  • 3 回答
  • 0 關注
  • 1300 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號