[英]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.