gpt4 book ai didi

打印 cout << 时的 C++ 对齐

转载 作者:IT老高 更新时间:2023-10-28 13:22:54 25 4
gpt4 key购买 nike

有没有办法在使用 std::cout 打印时对齐文本?我正在使用制表符,但是当单词太大时,它们将不再对齐。

Sales Report for September 15, 2010
Artist Title Price Genre Disc Sale Tax Cash
Merle Blue 12.99 Country 4% 12.47 1.01 13.48
Richard Music 8.49 Classical 8% 7.81 0.66 8.47
Paula Shut 8.49 Classical 8% 7.81 0.72 8.49

最佳答案

执行此操作的 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 libraries ,运行(不要走路)并使用 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;

关于打印 cout << 时的 C++ 对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2485963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com