0
我们知道,std :: setw()只影响下一个输出。std :: setw整个运算符<<用户自定义类型
所以,对准什么标准的做法 的整个操作< <表输出用户定义类型的:
class A
{
int i, j;
public:
friend ostream& opeartor<<(ostream& out, const A& a) {
return << "Data: [" << i << ", " << j << "]";
}
}
// ...
A[] as;
out << std::left;
for (unsigned i = 0; i < n; ++i)
out << std::setw(4) << i
<< std::setw(20) << as[i] // !!!
<< std::setw(20) << some_strings[i]
<< some_other_classes[i] << std::endl;
out << std::right;
他们打算怎么样?或者他们应该开始为他们需要的每种格式修改这个'operator <<'?如果他们*需要不同的格式呢? – StoryTeller
@StoryTeller,我改进了我的答案,以便它可以根据需求对班级进行格式化 –