Как мне избежать этой печати в той же строке?
Я не уверен, что хорошо понял ваш вопрос, но вам просто нужно печатать на новой строке, используя\n
(Выход из режима n будет интерпретироваться как перевод строки). Например:
std::cout << '\n'; // Add a new line
Таким образом, возможная реализация будет:
void drawSquareShape(size_t rows, size_t cols)
{
for(size_t i = 0; i < rows; ++i)
{
for(size_t j = 0; j < cols; ++j)
{
std::cout << ( (i == 0 || j == 0 || i == rows-1 || j == cols-1) ? 'X' : 'O' );
if(j < cols-1)
std::cout << ' ';
}
std::cout << '\n';
}
std::cout.flush();
}
И может быть использована следующим образом:
int main()
{
drawSquareShape(5, 8);
return 0;
}
, который привлекает вконсоль выводит следующее:
X X X X X X X X
X O O O O O O X
X O O O O O O X
X O O O O O O X
X X X X X X X X
РЕДАКТИРОВАТЬ:
Я знаю, что это прямоугольник, а не квадрат, но его легко модифицировать / специализироватьэта функция для рисования квадрата. Например:
void drawSquare(size_t s)
{
drawSquareShape(s, s);
}