【问题标题】:Aligning (formatting) output in C++ // Multiple variables in a single line在 C++ 中对齐(格式化)输出 // 一行中的多个变量
【发布时间】:2014-07-01 15:00:10
【问题描述】:

我正在尝试显示(使用cout)一组点的坐标,我希望得到这样的结果:

Point 1: (    2.10 ,     3.95)
Point 2: ( -511.00 ,   108.66)
Point 3: (    0.00 , -1000.33)

我尝试过使用setw()std::leftstd::leftstd::internal,但我只得到如下内容:

Point 1: (    2.10 , 3.95)
Point 2: (    -511.00, 108.66)
Point 3: (    0.00, -1000.33)

这是我的输出行的示例:

cout << "Point: " << i;
cout << setw(8) << left << " (" << p[i][0] << ", " << p[i][1] << ")" << endl;

有人可以就如何实现我想要的输出提供指导吗? 谢谢。

【问题讨论】:

  • 尝试在要影响的变量之前立即使用setw,并在每个应该是固定宽度的变量之前重复。
  • 阅读一本好的参考书或教程的第一部分很容易回答这个问题。
  • @BenVoigt 非常感谢您的合作,我现在正在尝试。
  • @ThomasMatthews 我不能使用你的答案,因为你没有推荐任何“好的”参考书或教程。

标签: c++ formatting output cout


【解决方案1】:

您需要在插入每个数值之前立即调用setw,因为operator&lt;&lt;() 的大多数重载都会清除宽度设置。

所以你可能想要

std::cout << " (" << std::setw(8) << std::right << p[i][0]
          << ", " << std::setw(8) << std::right << p[i][1] << ")" << std::endl;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    • 2016-06-03
    相关资源
    最近更新 更多