C++如何正确地证明多个数据

Jam*_*unz 6 c++ justify

所以我必须发送到std::cout一列数据,我必须在数据周围显示一些字符,如:

    Plot Points
   (0,0), (2,3) 
(1,10), (12,14)
Run Code Online (Sandbox Code Playgroud)

我必须在列标题中的字母"s"输入下右对齐最后右括号"Points".

我把数据输出如下:

cout << right << setw(12) << "(" << x1 << "," << y1 << "), (" << x2 << "," << y2 << ")";
Run Code Online (Sandbox Code Playgroud)

但是我看到的所有例子似乎都表明正确而且setw似乎只影响我发送给的下一条数据cout,因此在这种情况下"("只有.

有没有办法将所有这些字符和变量组合在一起,以便在输出列中将它们全部合理化?

我只是在学习C++,所以期待有一些我还没有学到的简单解决方案吗?

πάν*_*ῥεῖ 6

有没有办法将所有这些字符和变量组合在一起,以便在输出列中将它们全部合理化?

是的,你可以使用一个小帮助函数来构建一个字符串:

std::string parentized_pair(int x, int y) {
    std::ostringstream oss;
    oss << "(" << x "," << y << ")";
    return oss.str();
}
Run Code Online (Sandbox Code Playgroud)

并在最终输出中使用那个:

cout << right << setw(12) << parentized_pair(x1,y1) 
     << right << setw(12) << parentized_pair(x2,y2);
Run Code Online (Sandbox Code Playgroud)


Jer*_*fin 2

一种可能性是使用字符串流格式化组成字段的项目,然后右对齐写出该字符串。