繁体   English   中英

如何彼此相邻打印两个“片断”?

[英]How to print two “pieces” next to each other?

我有一堂课:

class Piece{

    public: 
        void print();

    private:
        string piece_name_;

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

        string piece_;

};

它描述了拼图,例如这样
一种/!
+␣!
C!

每边都有一个数字(上,右...)

我制作了打印此作品的功能,但我需要一种这样的方式来将两个作品彼此相邻打印
/ -HDA
R!IEB
-/ 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;
        }
    }
}

我不明白像“ A /!”这样的乐曲信息。 代表,但是您可以使用非成员函数打印两张

void printTwoPieces(Piece a, Piece b) {
  a.print();
  b.print();
  cout << endl;
}

您还需要用return;替换Piece :: print()中的if语句return; ,除非仅在特定情况下需要输出换行符。 然后,问题没有得到足够详细的描述。

单独考虑,转换为字符串应与打印分开。 然后,您可以将许多片段转换为字符串,然后按需要打印它们。

首先,用Piece::print直接写到std::cout不能做我想做的事情。 首先编写一个流插入运算符,例如std::ostream& operator<<(std::ostream&, Piece const&)

然后,您可以将两段格式化为您可以控制的字符串:

void format_pieces(Piece const &p1, Piece const &p2) {
  std::stringstream s1, s2;
  s1 << p1;
  s2 << p2;

最后,您可以连接每一行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM