C++ 如何打印“两个”;“件”;紧挨着?

C++ 如何打印“两个”;“件”;紧挨着?,c++,class,C++,Class,我有一门课: class Piece{ public: void print(); private: string piece_name_; int top_; int right_; int lower_; int left_; string piece_; }; 它描述拼图块,例如 A/ +␣! C 每边都有一个数字(顶部,右侧…) 我做了打印这件作品

我有一门课:

class Piece{

    public: 
        void print();

    private:
        string piece_name_;

        int top_;
        int right_;
        int lower_;
        int left_;

        string piece_;

};
它描述拼图块,例如
A/
+␣!
C

每边都有一个数字(顶部,右侧…)

我做了打印这件作品的功能,但我需要一种方法来打印两件相邻的作品 这样地
/-␣HDA
!RIEB
-/JFC

有人知道如何解决这个问题吗

void Piece::print(){

    for(string::size_type i = 0; i < piece_.size(); ++i){
        cout << piece_.at(i);
        if(i == 2 or i == 5 or i == 8){
            cout << endl;
        }
    }
}
void Piece::print(){
对于(字符串::大小\类型i=0;icout我不明白像“A/!”这样的片段信息代表什么,但是您可以使用非成员函数打印两个片段

void printTwoPieces(Piece a, Piece b) {
  a.print();
  b.print();
  cout << endl;
}
void打印两件(件号a、件号b){
a、 打印();
b、 打印();

cout分离关注点,转换为字符串(或字符串)应该与打印分开。然后你可以转换成字符串,然后按你喜欢的方式打印它们。

首先,你不能做我认为你想做的事情,使用
Piece::print
直接写入
std::cout
。开始编写一个流插入操作符,如
std::ostream&operator组合多线程-如果您使用单件打印件中的相同样品,则单件样品将更有意义。这些样品应该如何相互匹配?您的
a/!
!R!
,等等示例。在我看来,这就像胡言乱语,很难看出您想要做什么。另外,您想要打印出的到底是什么?在您的
print
方法,您正在打印一些(假定)字符串
片段
的单个字符,这些字符在您的类中不存在。我假定这应该是
片段
片段
。如果是,这些字符应该是什么格式?A/+␣! C!给出了这幅作品的外观。顶部的数字、右侧的数字等说明了它与哪幅作品相匹配。很抱歉,表达不清楚。这不是在第一幅下面打印另一幅作品吗?我需要将它们相邻打印。A/!这些字符只是为了使作品在视觉上彼此不同,而不是打印在另一幅下面r如果你拆下盖子
void format_pieces(Piece const &p1, Piece const &p2) {
  std::stringstream s1, s2;
  s1 << p1;
  s2 << p2;