我正在经历一个for循环,我希望我的输出看起来像这样:
apples_fuji 18.93 31.99
apples_gala 25.34 27.62
apples_jazz 16.77 36.73
apricots 17.92 22.22
bananas 25.87 18.63
cherries 16.30 78.40
grapes_red 15.62 41.86
grapes_white 23.06 86.94
pears_anjou 26.35 28.72
pears_bosc 12.03 15.52
plantains 16.35 23.54
watermelon 14.33 32.82
totals 228.87 444.99
不幸的是,它看起来像这样
apples_fuji 18.93 31.9917
apples_gala 25.34 27.6206
apples_jazz 16.77 36.7263
apricots 17.92 22.2208
bananas 25.87 18.6264
cherries 16.3 78.403
grapes_red 15.62 41.8616
grapes_white 23.06 86.9362
pears_anjou 26.35 28.7215
pears_bosc 12.03 15.5187
plantains 16.35 23.544
watermelon 14.33 32.8157
totals 228.87 444.987
其中第一个col是所有字符串,后两个是int。格式化它的最佳或最简单方法是什么?由于字符串长度不同,我遇到了一些麻烦
int num;
int total_amount, tote_amount, tote_price;
for (int i=0; i < num; i++)
cout << string " " << num1 << " " << num2 <<endl;
cout << "totals"< < " " << tote_amount << " " << tote_price <<endl;
答案 0 :(得分:4)
如果你的字符串有最大长度,你可以使用
std::cout << std::setw(max_length) << std::setfill(' ') << left << value << ...
答案 1 :(得分:1)
如果你的琴弦有最大长度,你可以使用
std :: cout&lt;&lt; std :: setw(max_length)&lt;&lt; std :: setfill('')&lt;&lt;左&lt;&lt;值&lt;&lt; ......
如果你不知道最大长度,你可以在之前做这样的事情(在C ++ 11中):
int maxLength = std::max_element(begin(names), end(names),
[](std::string const & a, std::string const & b) { return a.length() < b.length(); })->length();