所以我必须向std :: cout发送一列数据,我必须在数据周围显示一些字符,如:
Plot Points (0,0),(2,3) (1,10),(12,14)
我必须右对齐列标题中“点”中字母“s”下的最后右括号.
我把数据输出如下:
cout << right << setw(12) << "(" << x1 << "," << y1 << "),(" << x2 << "," << y2 << ")";
但是我看到的所有例子似乎都表明右边和setw似乎只影响我发送给cout的下一条数据,所以在这种情况下只有“(”).
有没有办法将所有这些字符和变量组合在一起,以便在输出列中将它们全部合理化?
我只是在学习C所以期待有一些我还没有学到的简单解决方案吗?
解决方法
Is there any way to group all those characters and variables together to have them all justified together in the column of output?
是的,你可以使用一个小帮助函数来构建一个字符串:
std::string parentized_pair(int x,int y) { std::ostringstream oss; oss << "(" << x "," << y << ")"; return oss.str(); }
并在最终输出中使用那个:
cout << right << setw(12) << parentized_pair(x1,y1) << right << setw(12) << parentized_pair(x2,y2);